+
    nDjw	             	          ^ 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 ^ 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!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/H0t0 ^ RI1H2t2 ^ RI3H4t4 ^ RI5H6t6 ^ R	IH7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@HAtAHBtBHCtCHDtDHEtEHFtFHGtGHHtHHItI ^ R
IJHKtK ^ RILHMtM ^ RINHOtO ^ RIPHQtQ ^ RIRHStS ^ RITHUtU ^RIVHWtW ]P                  R8H  ;'       g    ]P                  ! 4       RW9   tYR]Z3R lt[]P|                  ]P                  .t]]P~                  ]P                  .t_]]]_,           t`R ta ! R R4      tb ! R R4      tc ! R R4      td ! R R4      te ! R R4      tf ! R R 4      tg ! R! R"]g4      th]P                  P                  ]YR#R$7      ]P                  P                  R%4      ]P                  P                  ^4      ]P                  P                  ^
4      ]P                  P                  ]QR&R$7      R' 4       4       4       4       4       tnR( to ! R) R*4      tp ! R+ R,4      tq ! R- R.4      tr ! R/ R04      ts ! R1 R24      tt ! R3 R44      tuR;tvtw]UR5,          R6,          R7,          tv]UR5,          R6,          R8,          tw ! R9 R:4      tx ! R; R<4      ty ! R= R>4      tz ! R? R@4      t{RA t|]P                  P                  ]P                  ! 4       RB8H  RCR$7      RD 4       t}RE t~RF t]P                  EP                  RRGRH7      RI 4       t ! RJ RK4      tRXRL lt]P                  EP                  ]P                  P                  ]EP
                  ! ]EP                  4      EP                  ^8  RMR$7      RN 4       4       tRO t]P                  EP                  RP]]Z]P|                  ]]P~                  .4      RQ 4       t ! RR RS4      tRT t ! RU RV4      tR# )Y    N)assert_equalassert_almost_equalassert_array_almost_equalassert_array_equalassert_assert_allclose)raises)eigeigvalslusvdsvdvalscholeskyqrschurrsf2csflu_solve	lu_factorsolvediagsvd
hessenbergrq
eig_bandedeigvals_bandedeigheigvalshqr_multiplyqzorthordqzsubspace_angleshadamardeigvalsh_tridiagonaleigh_tridiagonal
null_spacecdf2rdfLinAlgError)get_lapack_funcs)norm)_select_function)ortho_group)arraydiagfulllinalgargsortzerosarangefloat32	complex64ravelsqrt	iscomplexshapesortsignasarrayisfinitendarrayeye)assert_no_overwrite)matrix)check_free_memory)	HAS_ILP64)skip_xp_invalid_arg)CONFIG)parametrize_overwrite_arg
emscriptenFc                   V\         9   ds   \        P                  P                  W 4      \        P                  P                  W 4      R,          ,           pW3P	                  4       P
                  ,           ^,          pM8\        P                  P                  W 4      pW3P
                  ,           ^,          pV'       d5   V\        ^V ,          4      \        P                  ! V 4      ,          ,          pVP                  V4      # )z7Generate random sym/hermitian array of the given size n              ?)	COMPLEX_DTYPESnprandomrandconjTr6   r>   astype)nposdefdtypeAs   &&& X/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/linalg/tests/test_decomp.py_random_hermitian_matrixrU   +   s     IINN1 299>>!#7#<<^QIINN1 WaK	T!A#Yrvvay  88E?    c                   \        V \        4      '       d#   T pVP                  V4      ^,          ^,
          pMQ\        V \        4      '       d1   \	        V P
                  4      ^8X  d   V P
                  ^ ,          pT pM\        R4      h\        P                  ! V4      pVP                  P                  4       \        V4      ,          V,          pRVP                  V,           ,          pV# )a  Return a random symmetric (Hermitian) matrix.

If 'dim_or_eigv' is an integer N, return a NxN matrix, with eigenvalues
    uniformly distributed on (-1,1).

If 'dim_or_eigv' is  1-D real array 'a', return a matrix whose
                  eigenvalues are 'a'.
zinput type not supported.      ?)
isinstanceintrK   r=   lenr8   	TypeErrorr+   rvsrN   rM   r-   )dim_or_eigvrngdimdvhs   &&    rT   symrandrd   B   s     +s##JJsOA!
['
*
*
k
 A
%"344A	
T!Wq AQSSUAHrV   c                      a  ] tR t^\t o R tR tR tR t]P                  P                  R]]]]].4      R 4       tRtV tR# )	TestEigValsc                    . RO. RO. RO.p\        V4      p^	\        ^]4      ,           ^,          ^ ^	\        ^]4      ,
          ^,          .p\        W#4       R#    Nri         rk         r   r6   r   selfawexact_ws   &   rT   test_simpleTestEigVals.test_simple^   sC    	9-AJd2hJ>1qbz1n5!!-rV   c                   \        . RO. RO. RO.R4      P                  pVP                  4       pVP                  p\        V4      p^	\	        ^]4      ,           ^,          ^ ^	\	        ^]4      ,
          ^,          .p\        W#4       R# )ri   ra   Nrj   rm   )r,   rN   copyr   r6   r   rq   s   &   rT   test_simple_trTestEigVals.test_simple_trd   sd    9i3S9;;FFHCCAJd2hJ>1qbz1n5!!-rV   c                    . RO. RO. RO.p\        V4      pR\        R4      ,           ^,          ^ R\        R4      ,
          ^,          .p\        W#4       R# )ri   Nrj   rk   rn   y      @      ?y      "@      ?y      W@      @rp   rq   s   &   rT   test_simple_complexTestEigVals.test_simple_complexl   sM    	<0AJe$a'e$a') 	"!-rV   c                    . RO. RO. RO.p\        VRR7      p^	\        ^]4      ,           ^,          ^ ^	\        ^]4      ,
          ^,          .p\        W#4       R# ri   Fcheck_finiteNrj   rm   rp   rq   s   &   rT   test_finiteTestEigVals.test_finitet   sF    	9-AE*d2hJ>1qbz1n5!!-rV   dtc                   \         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\        VRR7      pVP                  R8X  g   Q hVP                  \        \         P
                  ! ^VR7      4      P                  8X  g   Q hR# r   rR   Thomogeneous_eigvalsNr   r   r   rk   r   )rJ   emptyr   r8   rR   r>   )rr   r   rs   rt   s   &&  rT   
test_emptyTestEigVals.test_emptyz   s    HHV2&AJww$ww'"&&""56<<<<<A40ww&   ww'"&&""56<<<<<rV    N)__name__
__module____qualname____firstlineno__rv   rz   r~   r   pytestmarkparametrizerZ   floatr3   complexr4   r   __static_attributes____classdictcell____classdict__s   @rT   rf   rf   \   sJ     .... [[TC)#LM= N=rV   rf   c                     a  ] tR t^t o R tR tR tR tR tR t	R+R lt
R tR	 tR
 tR tR tR tR tR t]P(                  P+                  R]]]P2                  ]]P6                  .4      R 4       t]P(                  P+                  RRR.4      ]P(                  P+                  RRR.4      ]P(                  P+                  RRR.4      ]P(                  P+                  RRR.4      ]P(                  P+                  R]P2                  ]P:                  .4      R 4       4       4       4       4       t]P(                  P+                  R]]].4      ]P(                  P+                  RRR.4      ]P(                  P+                  R^^.4      ]P(                  P+                  RRR.4      R  4       4       4       4       t]P(                  P+                  R!]]].4      ]P(                  P+                  R"]]].4      ]P(                  P+                  R#RR.4      ]P(                  P+                  R$RR.4      ]P(                  P+                  R%^^.4      ]P(                  P+                  R&^^.4      ]P(                  P+                  RRR.4      ]P(                  P+                  R'RR.4      R( 4       4       4       4       4       4       4       4       t R)t!V t"R*# ),TestEigc                2   \        . RO. RO. RO.4      p\        V4      w  r#^	\        ^]4      ,           ^,          ^ ^	\        ^]4      ,
          ^,          .p\        ^^^\        ^]4      ^,          ,           ^,          .4      p\        . RO4      p\        ^^^\        ^]4      ^,          ,
          ^,          .4      pV\        V4      ,          pV\        V4      ,          pV\        V4      ,          p\	        W$4       \	        WSR,          \        VR,          4      ,          4       \	        WcR	,          \        VR
,          4      ,          4       \	        WsR,          \        VR,          4      ,          4       \        ^4       F4  p\	        WRV3,          ,          W(,          VRV3,          ,          4       K6  	  \        V^^ R7      w  r#\        ^4       F?  p\	        VP                  VRV3,          ,          W(,          VRV3,          ,          4       KA  	  R# )ri   NNNleftrightNrj   rm         @r   r   r   r   r   ri   r   ri   r   rk   r   rk   )r,   r
   r6   r)   r   r:   rangerN   	rr   rs   rt   rb   ru   v0v1v2is	   &        rT   rv   TestEig.test_simple   s   9i341vd2hJ>1qbz1n5Aq1T"XaZ<*+,;Aq1T"XaZ<*+,$r(]$r(]$r(]!!-!"gd1T7m&;<!"gd1T7m&;<!"gd1T7m&;<qA%aAqD'k14!Q$<@  11A&qA%accAadGmQT!AqD'\B rV   c                   \         P                  ! . RO. RO. RO.4      p\        VRRR7      w  r#pVP                  \         P                  8X  g   Q hVP
                  ^ 8H  P                  4       '       g   Q hVP                  \         P                  8X  g   Q hVP                  \         P                  8X  g   Q h\         P                  ! . RO4      p\        WRRR7      w  r#pVP                  \         P                  8X  g   Q hVP
                  R8H  P                  4       '       g   Q hVP                  \         P                  8X  g   Q hVP                  \         P                  8X  g   Q hR# )ri   Tr           Nrj   rm   )rl   rk   ri   )	rJ   r,   r
   rR   
complex128imagallfloat64r-   )rr   rs   rt   vlvrbs   &     rT   test_simple_dtypeTestEig.test_simple_dtype   s    HHiI67D1	rww"--'''!  """"xx2::%%%xx2::%%% GGI4t4	rww"--'''"!!####xx2::%%%xx2::%%%rV   c                   \        ^^.R^..4      p\        V^^R7      w  r#p\        V\        RR.4      4       \        ^4       F4  p\        WRV3,          ,          W%,          VRV3,          ,          4       K6  	  \        ^4       F[  p\        VP	                  4       P
                  VRV3,          ,          W%,          P	                  4       VRV3,          ,          4       K]  	  R# )ri   r   r   N      ?       @y      ?       )r,   r
   r   r   rM   rN   rr   rs   rt   r   r   r   s   &     rT   test_simple_complex_eigTestEig.test_simple_complex_eig   s    Aq6B7#$+	r!!UD$<%89qA%aQT(lADAqDMB qA%affhjj2ad8&;&'diik"QT(&:< rV   c                &   \         P                  ! ^^.R^..4      p\        VRRR7      w  r#pVP                  \         P                  8X  g   Q hVP                  \         P                  8X  g   Q hVP                  \         P                  8X  g   Q hR# )ri   Tr   Nr   )rJ   r;   r
   rR   r   )rr   rs   rt   r   r   s   &    rT   test_simple_complex_eig_dtype%TestEig.test_simple_complex_eig_dtype   ss    
 JJAQ()D1	rww"--'''xx2==(((xx2==(((rV   c                   \        . RO. RO. RO.4      p\        V^^R7      w  r#p\        ^4       F4  p\        WRV3,          ,          W%,          VRV3,          ,          4       K6  	  \        ^4       F[  p\        VP	                  4       P
                  VRV3,          ,          W%,          P	                  4       VRV3,          ,          4       K]  	  R# )ri   r   r   Nrj   r}   )r,   r
   r   r   rM   rN   r   s   &     rT   r~   TestEig.test_simple_complex   s    9i67+	rqA%aQT(lADAqDMB qA%affhjj2ad8&;&'diik"QT(&:< rV   c                   ^..p^ ..p\        WRR7      w  r4\        VR,          ^ 4       \        VR,          ^ 8g  4       \        V^4       \        W4      w  r4\        V\        P
                  4       \        V^4       R# )ri   Tr   Nri   r   r   )r
   r   r   r   rJ   inf)rr   rs   r   rt   r   s   &    rT   test_gh_3054TestEig.test_gh_3054   sm    SESEAd3$#$1AA	QArV   c           	     \   Ve   \        V4      \        V4      r!TpM+\        V4      pTp\        P                  ! VP                  !  pRV: RV: 2p\	        WRR7      w  r\        WRR7      pW,          V	R,          ,          pW*,          V	R,          ,          p\        VP                  ^,          4       F$  p\        VRV3,          VRV3,          WCVR7       K&  	  Vf'   \        V	R,          ^4       \        VR,          ^4       \        P                  ! V	4      p\        P                  ! V4      p\        V	RV3,          VRV3,          RRVR7       \        P                  ! \        V
4      4      p\        \        V
4      4       F  p\        V
RV3,          4      VV&   K  	  \        V\        P                  ! VP                  4      VRRR7       V	R,          ^ 8g  pV	^ V3,          V	^V3,          ,          p\	        W4      w  r\        W4      pW,          pW*,          V	,          pW,
          p\        VP                  ^,          4       FK  p\        P                  ! \        VRV3,          4      4      '       g   K3  \        VRV3,          ^ WeVR7       KM  	  V	\        V	4      ,          pV\        V4      ,          pR\        P                   ! R	V,          R
R7      ,          pR\        P                   ! R	V,          R
R7      ,          p\#        \%        V4      VP&                  ,           4      p\#        \%        V4      VP&                  ,           4      p\        VV,          VV,          RRVR7       \        P                  ! \        V
4      4      p\        \        V
4      4       F  p\        V
RV3,          4      VV&   K  	  \        V\        P                  ! VP                  4      VR7       \        \)        V4      \)        V	\        P                  ! V	4      ,          4      4       R # )N
Tr   r   rtolatolerr_msggHz>)r   r   r   )r   r   r   rH   g|=)tolr   )ri   r   )r   r   y             )r;   rJ   r>   r8   r
   r   r   r   lexsortr   r[   r)   onessizer   r<   real_if_closer0   absr   r9   )rr   rS   B
atol_homog
rtol_homogr   r   B0msgrt   r   wtval1val2r   permpermtlengthbeta_nonzerowhresw_finwt_fins   &&&&&&&                rT   _check_gen_eigTestEig._check_gen_eig   s:   =1:wqzqB
AB A1%r! At4Q5v$v$tzz!}%ADAJQT
!+cK & :AdGQ'BtHa(zz!}

2!T'
Bq%xLt$ #	% #b'"s2wAR1XF1I   	 4c!	. $1q,!A|O"44 A
Q^vvzksyy|$Avvhs1a4y)**AqD	1%)cC % (1+HRL! b&&r%xU;;r''6	u==s5zEJJ./Ffkk12dVE]!c	; #b'"s2wAR1XF1I   4cB 	R$qQ'8"9:rV   c           	        \        . RO. RO. RO. R	O. R
O.4      p\        . RO. RO. RO. RO. RO.4      p\        P                  ! RR7      ;_uu_ 4        V P                  WRRR7       RRR4       R#   + '       g   i     R# ; i)   ignorer   g-a=)r   r   N)r   "      r      )-   r   *         )'   /   1      r   )   r   r         )&   ,   r        )   r      r   r  )r   .   (   r   %   )r   r	  r   r  r  )   r  r         )r  #      r   r   )r,   rJ   errstater   rr   rS   r   s   &  rT   test_singularTestEig.test_singular'  sw     '''''	) *
 '''''	) * [[X&&UC '&&&s   A33B	c                   \        \        . RO4      4      p\        . RO. RO. RO34      p\        . RO. R	O. R
O34      p\        R4      p\        ^4      p\        P
                  ! WT.WB) ..4      p\        P
                  ! WE.W..4      p\        P                  ! RR7      ;_uu_ 4        V P                  Wg4       RRR4       R#   + '       g   i     R# ; i)ri   r   r   N)ri   r   rl   )rk   r   r   )r   rk   r   )r   r   rk   )ri   r   r   )r   ri   r   r   r   r   rl   rl   )r-   r,   r1   r>   rJ   blockr  r   )rr   MKDZI3rS   r   s   &       rT   test_falkerTestEig.test_falker8  s    y!";[9::z956&MVHHrg2w'(HHqgv&'[[X&&% '&&&s   )CC	c                    R  p\         P                  ! RR7      ;_uu_ 4        \        ^d4       F-  pV! VR,          ^d,          R7      w  r4V P                  W44       K/  	  RRR4       R#   + '       g   i     R# ; i)c                     RV ^,          ,           p^V ,          p. RO. RO^ ^ V^ .^ ^ ^ V..p. RO. RO^^ ^ V) .^ ^V^ ..pW43# )	   )ri   r   r   r   )r   ri   r   r   )r   r   ri   r   )r   r   r   ri   r   )omegac1c2rS   r   s   &    rT   matrices)TestEig.test_bad_geneig.<locals>.matricesH  sk    eQhB5BQAQ2 A QB3QA A 4KrV   r   r         @)r#  N)rJ   r  r   r   )rr   r&  krS   r   s   &    rT   test_bad_geneigTestEig.test_bad_geneigE  sW    	 [[X&&3Zad3h/##A)   '&&&s   =A**A;	c                   \         P                  P                  R 4      p\        ^V4      pV P	                  VR4       \        ^V4      pV P	                  W#4       VP                  R4      RVP                  R4      ,          ,           pV P	                  VR4       VP                  R4      RVP                  R4      ,          ,           pV P	                  W#4       R# )  NrH   r  )rJ   rK   RandomStaterd   r   )rr   r_   rS   r   s   &   rT   test_make_eigvalsTestEig.test_make_eigvals\  s     ii##D)AsOAt$AsOA!JJvCJJv$6!66At$JJvCJJv$6!66A!rV   c                h   . RO. RO. RO.p\        VRR7      w  r#^	\        ^]4      ,           ^,          ^ ^	\        ^]4      ,
          ^,          .p\        ^^^\        ^]4      ^,          ,           ^,          .4      p\        . RO4      p\        ^^^\        ^]4      ^,          ,
          ^,          .4      pV\        V4      ,          pV\        V4      ,          pV\        V4      ,          p\	        W$4       \	        WSR,          \        VR	,          4      ,          4       \	        WcR
,          \        VR,          4      ,          4       \	        WsR,          \        VR,          4      ,          4       \        ^4       F4  p\	        WRV3,          ,          W(,          VRV3,          ,          4       K6  	  R# )ri   Fr   r   Nrj   rm   r   r   r   r   r   r   r   )r
   r6   r,   r)   r   r:   r   r   s	   &        rT   test_check_finiteTestEig.test_check_finitej  s8   	9-15)d2hJ>1qbz1n5Aq1T"XaZ<*+,;Aq1T"XaZ<*+,$r(]$r(]$r(]!!-!"gd1T7m&;<!"gd1T7m&;<!"gd1T7m&;<qA%aAqD'k14!Q$<@ rV   c                |    \         P                  ! ^4      P                  ^^4      p\        \        \
        V4       R# )z:Check that passing a non-square array raises a ValueError.N)rJ   r2   reshapeassert_raises
ValueErrorr
   )rr   rS   s   & rT   test_not_square_errorTestEig.test_not_square_error{  s(    IIaL  A&j#q)rV   c                    \        ^4      p\        P                  ! R4      P                  ^^4      p\	        \
        \        W4       \	        \
        \        W!4       R# )zGCheck that passing arrays of with different shapes
raises a ValueError.      "@N)r>   rJ   r2   r5  r6  r7  r
   r  s   &  rT   test_shape_mismatchTestEig.test_shape_mismatch  s?     FIIcN""1a(j#q,j#q,rV   c                   \         P                  ! . R
O. RO. RO. RO.RR7      p\         P                  ! . RO. RO. RO. RO.RR7      p\        W4      w  r4\        P                  ! 4       ;_uu_ 4        \        P
                  ! RR\        4       \         P                  ! VRRR7      P                  4       '       g   Q h\         P                  ! VRRR7      P                  4       '       g   Q h R	R	R	4       R	#   + '       g   i     R	# ; i)      (@r   r         @r   z%invalid value encountered in multiply+=r          @N)r?        <@g      S@g     k@)g      0@g      @@g      T@g      l@)g      8@      D@g      V@g      m@)rE  g      L@g      Z@g      o@)       @r@        $@rD  )r   r(        &@g      =@)r(        @g      *@g      ?@)r;  rH  g      1@g     A@)	rJ   r,   r
   warningscatch_warningsfilterwarningsRuntimeWarningiscloseany)rr   rS   r   r  Vs   &    rT   test_gh_11577TestEig.test_gh_11577  s     HH///02 :CD HH,,,-/ 7@A
 1y $$&&##A>S::a51557777::a51557777 '&&&s   3A8C9,C99D
	r   c                t   \         P                  ! RVR7      p\        V4      w  r4\        \         P                  ! ^VR7      4      w  rVVP                  R8X  g   Q hVP
                  VP
                  8X  g   Q h\        V\         P                  ! R4      4       VP                  R8X  g   Q hVP
                  VP
                  8X  g   Q h\        VRR7      w  r4VP                  R8X  g   Q hVP
                  VP
                  8X  g   Q hVP                  R8X  g   Q hVP
                  VP
                  8X  g   Q hR# r   )rJ   r   r
   r>   r8   rR   r   )rr   r   rs   rt   r   w_nvr_ns   &&     rT   r   TestEig.test_empty  s    HHV2&Aq+,	ww$ww#))###BHHV,-xx6!!!xx4::%%%A40ww&   ww#))###xx6!!!xx4::%%%rV   	include_BFTr   r   r   rR   c           	        RpRp\         P                  P                  R4      pVP                  Wg,           4      P                  V4      p	VP                  Wg,           4      P                  V4      p
\	        W4R7      pV'       d   \        V	3RV
RV/VB pM\        V	3RV/VB p\        V^ ,          4       F  p\        V^,          4       F  pV'       d"   \        WV3,          3RWV3,          RV/VB pM\        WV3,          3RV/VB pV'       g	   V'       d@   \        \        V4      4       F%  p\        VV,          W3,          VV,          4       K'  	  K  \        WV3,          V4       K  	  K  	  R# )rl   l   F)Q)r   r   r   r   Nrl   rk   )   rZ  )	rJ   rK   default_rngrO   dictr
   r   r[   r   )rr   rW  r   r   r   rR   batch_shape
core_shaper_   rS   r   kwargsr   r   jrefr)  s   &&&&&&           rT   test_nd_inputTestEig.test_nd_input  s=    
ii##M2JJ{/077>JJ{/077>EKa2124262Ca-d-f-C{1~&A;q>*a1gFa4FtFvFCa1g;D;F;C5"3s8_'Aqtc!f= - $C1Is3 + 'rV   dtyporderCFndimoverwrite_ac                   ^p\         P                  ! WU,          4      P                  WU4      pVP                  WR7      pV^8X  d    \         P                  ! V^V,          .4      pVP                  4       p\        WdR7      w  rT;'       dF    VP                  \        8g  ;'       d+    VP                  ^8H  ;'       d    VP                  R,          p
Wg8H  P                  4       V
8w  g   Q hR# )rl   rR   re  ri  F_CONTIGUOUSN)rJ   r2   r5  rO   stackry   r
   rR   rZ   rh  flagsr   )rr   rd  re  rh  ri  rP   rs   a_refrt   rb   	a_inplaces   &&&&&      rT   test_overwrite_regTestEig.test_overwrite_reg  s    
 IIacN""1(HH4H-19!QqS"A1.  $ $WW^$ $VVq[$ $ GGN#	 	 
!Y...rV   dtyp_adtyp_border_aorder_bndim_andim_boverwrite_bc	                   ^p	\         P                  ! W,          4      P                  W4      p
V
P                  WR7      p
\         P                  ! W,          4      P                  W4      pVP                  W$R7      pV^8X  d    \         P                  ! V
^V
,          .4      p
V^8X  d    \         P                  ! V^V,          .4      pV
P                  4       pVP                  4       p\        WWxR7      w  rT;'       d    V
P                  \        8g  ;'       dm    V
P                  \         P                  ! W4      8H  ;'       dB    V
P                  ^8H  ;'       d+    VP                  ^8H  ;'       d    V
P                  R,          pT;'       d    VP                  \        8g  ;'       dm    VP                  \         P                  ! W4      8H  ;'       dB    V
P                  ^8H  ;'       d+    VP                  ^8H  ;'       d    VP                  R,          pW8H  P                  4       V8w  g   Q R4       hW8H  P                  4       V8w  g   Q R4       hR# )rl   rk  ri  rz  rm  rS   r   N)rJ   r2   r5  rO   rn  ry   r
   rR   rZ   result_typerh  ro  r   )rr   rt  ru  rv  rw  rx  ry  ri  rz  rP   rs   r   rp  b_refrt   rb   rq  	b_inplaces   &&&&&&&&&         rT   test_overwrite_genTestEig.test_overwrite_gen  s    IIacN""1(HH6H1IIacN""1(HH6H1Q;!QqS"AQ;!QqS"A1[J  $ $WW^$ $"#''R^^A-A"A$ $VVq[$ $ vv{$ $ GGN#	 	  $ $WW^$ $"#''R^^A-A"A$ $VVq[$ $ vv{$ $ GGN#	 	 
!Y.33.
!Y.33.rV   r   N)vIh%<=r  r  r  )#r   r   r   r   rv   r   r   r   r~   r   r   r  r  r*  r/  r2  r8  r<  rQ  r   r   r   rZ   r   rJ   r3   r   r4   r   r   rb  rr  r  r   r   r   s   @rT   r   r      s    C*&*<	)<
H;TD"&*."A"*
-8: [[TC

GR\\#RS& T&( [[[5$-8[[VeT]3[[Wudm4[[2UDMB[[Wrzz2==&AB4 C C 5 4 9
44 [[Vc5'%:;[[WsCj1[[VaV,[[]T5M:/ ; - 2 </, [[XUG'<=[[XUG'<=[[Yc
3[[Yc
3[[X1v.[[X1v.[[]T5M:[[]T5M:$4 ; ; / / 4 4 > >$4rV   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]P$                  P'                  R]]]P.                  ]]P2                  .4      R 4       tRtV tR# )TestEigBanded"  c                &    V P                  4        R # N)create_bandmatrr   s   &rT   setup_methodTestEigBanded.setup_method#  s    rV   c                L   ^
p^V n         ^V n        \        \        VR4      4      \        \        V^,
          R4      R4      ,           \        \        V^,
          R4      ^4      ,           \        \        V^,
          R	4      R
4      ,           \        \        V^,
          R	4      ^4      ,           V n        \        \        VR4      4      R\        \        V^,
          R4      R4      ,          ,           R\        \        V^,
          R4      ^4      ,          ,
          \        \        V^,
          R	4      R
4      ,           \        \        V^,
          R	4      ^4      ,           V n        \        \        VR4      4      \        \        V^,
          R4      R4      ,           \        \        V^,
          R4      ^4      ,           \        \        V^,
          R4      R
4      ,           \        \        V^,
          R	4      ^4      ,           V n        R\        \        VR4      4      ,          \        \        V^,
          R4      R4      ,           R\        \        V^,
          R4      ^4      ,          ,           \        \        V^,
          R4      R
4      ,           \        \        V^,
          R	4      ^4      ,           V n        \        P                  ! V P                  4      w  r#VP                  p\        V4      pW$,          V n        VRV3,          V n        \        P                  ! V P
                  4      w  r#VP                  p\        V4      pW$,          V n        VRV3,          V n        V P                  ^,           p\!        WQ3\"        R7      V n        \!        WQ3\&        R7      V n        \+        V4       Fi  p\        V P                  V4      V P$                  WV,
          ^,
          Wa13&   \        V P
                  V4      V P(                  WV,
          ^,
          Wa13&   Kk  	  ^V P                   ,          V P                  ,           ^,           p\!        WQ3\"        R7      V n        \        V P                  4      V P,                  ^V P                   ,          R3&   \+        V P                   4       F  p\        V P                  V^,           4      V P,                  ^V P                   ,          ^,
          V,
          V^,           V13&   \        V P                  V) ^,
          4      V P,                  ^V P                   ,          ^,           V,           ^ V^,
          V,
          13&   K  	  \!        WQ3\&        R7      V n        \        V P                  4      V P.                  ^V P                   ,          R3&   \+        V P                   4       F  p\        V P                  V^,           4      V P.                  ^V P                   ,          ^,
          V,
          V^,           V13&   \        V P                  V) ^,
          4      V P.                  ^V P                   ,          ^,           V,           ^ V^,
          V,
          13&   K  	  R\1        V4      ,          V n        V P2                  R,          V n        R# )zWCreate the full matrix `self.fullmat` and
the corresponding band matrix `self.bandmat`.      ?rF  rH   r   r   N      r          r               ?      ?)KLKUr-   r.   sym_matherm_matreal_matcomp_matr/   r
   realr0   	w_sym_linevec_sym_lin
w_herm_linevec_herm_linr1   r   bandmat_symr   bandmat_hermr   bandmat_realbandmat_compr2   r   bc)rr   NewevargsLDABr   s   &      rT   r  TestEigBanded.create_bandmat&  s     T!S\*tAaC346:4!T?A6NOtAaC346:4!T?A6NO
 d1dm,d4!S>2667d4!S>1556  QqS$45  QqS$3	4 d1cl+QqS$457;D1dOQ7OPQqS#346:4!T?A6NO
 Da..QqS$45d4!T?A667  QqS#34  QqS$3	4 DLL)WWr{q$wKDMM*WWr{(4[
 ww{ $%8!4)7;tA.24<<.CDTVAXqs]+/3DMM1/EDdfQhm,  y477"Q&!4)59*.t}}*=!DGG)Q,'twwA6:4==!A#6NDaik!mQqSU238<T]]>?RT9CDaik!mQqs1uW45	   "4)7;*.t}}*=!DGG)Q,'twwA6:4==!A#6NDaik!mQqSU238<T]]>?RT9CDaik!mQqs1uW45	   VAY&&F#rV   c                "   \        R\        P                  RR7      pV! V P                  ^R7      w  r#pVR\	        V4      3,          p\        \        V4      V P                  4       \        \        V4      \        V P                  4      4       R# )zICompare dsbev eigenvalues and eigenvectors with
the result of linalg.eig.sbev	preferredrR   ilp64	compute_vr   N
r(   rJ   r   r  r0   r   r9   r  r   r  )rr   dsbevrt   evecinfoevec_s   &     rT   
test_dsbevTestEigBanded.test_dsbevw  si     !rzzMd..!<Q
]#!$q'4>>:!#e*c$2C2C.DErV   c                "   \        R\        P                  RR7      pV! V P                  ^R7      w  r#pVR\	        V4      3,          p\        \        V4      V P                  4       \        \        V4      \        V P                  4      4       R# )zJCompare dsbevd eigenvalues and eigenvectors with
the result of linalg.eig.sbevdr  r  r  r   Nr  )rr   dsbevdrt   r  r  r  s   &     rT   test_dsbevdTestEigBanded.test_dsbevd  si     "';Ot//1=Q
]#!$q'4>>:!#e*c$2C2C.DErV   c           
     ^   \        V P                  4      w   p\        R\        P                  RR7      pV! V P
                  RR^V^^R7      w  r4rVpVR\        V4      3,          p\        \        V4      V P                  4       \        \        V4      \        V P                  4      4       R# )zJCompare dsbevx eigenvalues and eigenvectors
with the result of linalg.eig.sbevxr  r  r   r  r   r   N)r8   r  r(   rJ   r   r  r0   r   r9   r  r   r  )	rr   r  dsbevxrt   r  numifailr  r  s	   &        rT   test_dsbevxTestEigBanded.test_dsbevx  s     T\\"1!';O %+4+;+;S#q!56a%A!TQ
]#!$q'4>>:!#e*c$2C2C.DErV   c                "   \        R\        P                  RR7      pV! V P                  ^R7      w  r#pVR\	        V4      3,          p\        \        V4      V P                  4       \        \        V4      \        V P                  4      4       R# )zJCompare zhbevd eigenvalues and eigenvectors
with the result of linalg.eig.hbevdr  r  r  r   N)
r(   rJ   r   r  r0   r   r9   r  r   r  )rr   zhbevdrt   r  r  r  s   &     rT   test_zhbevdTestEigBanded.test_zhbevd  si     "'kRt00A>Q
]#!$q'4??;!#e*c$2D2D.EFrV   c           
     ^   \        V P                  4      w   p\        R\        P                  RR7      pV! V P
                  RR^V^^R7      w  r4rVpVR\        V4      3,          p\        \        V4      V P                  4       \        \        V4      \        V P                  4      4       R# )zJCompare zhbevx eigenvalues and eigenvectors
with the result of linalg.eig.hbevxr  r  r   r  r   N)r8   r  r(   rJ   r   r  r0   r   r9   r  r   r  )	rr   r  zhbevxrt   r  r  r  r  r  s	   &        rT   test_zhbevxTestEigBanded.test_zhbevx  s     T]]#1!'kR %+4+<+<c3156a%A!TQ
]#!$q'4??;!#e*c$2D2D.EFrV   c                   \        V P                  4      pVP                  p\        \	        V4      V P
                  4       \        V P                  4      pVP                  p\        \	        V4      V P                  4       ^p\        P                  ! ^4      p\        V P                  RW43R7      p\        \	        V4      V P
                  W4^,            4       \        V P                  RW43R7      p\        \	        V4      V P                  W4^,            4       V P
                  V,          R,
          pV P
                  V,          R,           p\        V P                  RWx3R7      p	\        \	        V	4      V P
                  W4^,            4       V P                  V,          R,
          pV P                  V,          R,           p\        V P                  RWx3R7      p
\        \	        V
4      V P                  W4^,            4       \        V P                  RR7      pVP                  p\        \	        V4      V P
                  4       R# )z?Compare eigenvalues of eigvals_banded with those of linalg.eig.r   selectselect_rangeh㈵>rb   Fr   N)
r   r  r  r   r9   r  r  r  rJ   longlong)rr   w_symw_hermind1ind2	w_sym_ind
w_herm_indv_lowerv_upper	w_sym_val
w_herm_vals   &          rT   test_eigvals_banded!TestEigBanded.test_eigvals_banded  s   t//0

!$u+t~~> 1 12!$v,@ {{1~"4#3#3*-TLJ	!$y/"&..1f"=	?#D$5$5+.d\K
!$z"2"&//$Av">	@ ..&/..&/"4#3#3*-W<NP	!$y/"&..1f"=	? //$'&0//$'&0#D$5$5+.291CE
 	"$z"2"&//$Av">	@ t//eD

!$u+t~~>rV   c           
        \        V P                  4      w  rVR\        VP                  4      3,          p\	        \        V4      V P                  4       \	        \        V4      \        V P                  4      4       \        V P                  4      w  rEVR\        VP                  4      3,          p\	        \        V4      V P                  4       \	        \        V4      \        V P                  4      4       ^p^p\        V P                  RWx3R7      w  r\	        \        V	4      V P                  Wx^,            4       \	        \        V
4      \        V P                  RWx^,           13,          4      4       \        V P                  RWx3R7      w  r\	        \        V4      V P                  Wx^,            4       \	        \        V4      \        V P                  RWx^,           13,          4      4       V P                  V,          R,
          pV P                  V,          R,           p\        V P                  RW3R7      w  pp\	        \        V4      V P                  Wx^,            4       \	        \        V4      \        V P                  RWx^,           13,          4      4       V P                  V,          R,
          pV P                  V,          R,           p\        V P                  RW3R7      w  pp\	        \        V4      V P                  Wx^,            4       \	        \        V4      \        V P                  RWx^,           13,          4      4       \        V P                  RR7      w  rVR\        VP                  4      3,          p\	        \        V4      V P                  4       \	        \        V4      \        V P                  4      4       R# )	zMCompare eigenvalues and eigenvectors of eig_banded
with those of linalg.eig. r   r   r  r  rb   Fr   N)r   r  r0   r  r   r9   r  r   r  r  r  r  )rr   r  evec_sym	evec_sym_r  	evec_herm
evec_herm_r  r  r  evec_sym_indr  evec_herm_indr  r  r  evec_sym_valr  evec_herm_vals   &                  rT   test_eig_bandedTestEigBanded.test_eig_banded  s    %T%5%56Q

 334	!$u+t~~>!#i.#d6G6G2HI&t'8'89q'&++"667
!$v,@!#j/3t7I7I3JK ",T-=-=47;?,#H	 	"$y/"&..1f"=	?!#l"3"%d&7&74Q;&G"H	J %/t/@/@69=AL%J!
 	"$z"2"&//$Av">	@!#m"4"%d&8&8DaK&H"I	K ..&/..&/",T-=-=47;B:L#N	< 	"$y/"&..1f"=	?!#l"3"%d&7&74Q;&G"H	J //$'&0//$'&0$.t/@/@69=D<N%P!
M 	"$z"2"&//$Av">	@!#m"4"%d&8&8DaK&H"I	K %T%5%5EJQ

 334	!$u+t~~>!#i.#d6G6G2HIrV   c                F   \        R\        P                  RR7      p\        V P                  4      w  r#V! V P
                  V P                  V P                  4      w  rEp\        V^V P                  ,          R3,          4      p\        V P                  V P                  ,           4       FN  pV\        V^V P                  ,          ^,
          V,
          V^,           V13,          V^,           4      ,          pKP  	  \        V P                  ^ R7      w  rp\        W{4       R# )zOCompare dgbtrf  LU factorisation with the LU factorisation result
of linalg.lu.gbtrfr  r  r   	permute_lN)r(   rJ   r   r8   r  r  r  r  r-   r   r   r   )rr   dgbtrfr  r  lu_symm_bandipivr  ur   p_linl_linu_lins   &           rT   test_dgbtrfTestEigBanded.test_dgbtrf  s     "';OT]]##)$*;*;TWWdgg#N D ail+,tww()Al1TWW9Q;q=!A#a%#78!A#>>A * !!<e!!+rV   c                F   \        V P                  4      w  r\        R\        P                  RR7      pV! V P
                  V P                  V P                  4      w  rEp\        V^V P                  ,          R3,          4      p\        V P                  V P                  ,           4       FN  pV\        V^V P                  ,          ^,
          V,
          V^,           V13,          V^,           4      ,          pKP  	  \        V P                  ^ R7      w  rp\        W{4       R# )zOCompare zgbtrf  LU factorisation with the LU factorisation result
of linalg.lu.r  r  r  r   r  N)r8   r  r(   rJ   r   r  r  r  r-   r   r   r   )rr   r  r  zgbtrfr  r  r  r  r   r  r  r  s   &           rT   test_zgbtrfTestEigBanded.test_zgbtrf#  s     T]]#!'kR#)$*;*;TWWdgg#N D ail+,tww()Al1TWW9Q;q=!A#a%#78!A#>>A * !!<e!!+rV   c                Z   \        R\        P                  RR7      w  rV! V P                  V P                  V P
                  4      w  r4pV! W0P                  V P
                  V P                  V4      w  re\        P                  ! V P                  V P                  4      p\        Wg4       R# )z]Compare dgbtrs  solutions for linear equation system  A*x = b
with solutions of linalg.solve.r  r  Nr  gbtrs)r(   rJ   r   r  r  r  r   r/   r   r  r   )rr   r  dgbtrsr  r  r  yy_lins   &       rT   test_dgbtrsTestEigBanded.test_dgbtrs3  s|     *bjj
 $*$*;*;TWWdgg#N DwwFT]]DFF3!!+rV   c                Z   \        R\        P                  RR7      w  rV! V P                  V P                  V P
                  4      w  r4pV! W0P                  V P
                  V P                  V4      w  re\        P                  ! V P                  V P                  4      p\        Wg4       R# )z]Compare zgbtrs  solutions for linear equation system  A*x = b
with solutions of linalg.solve.r  r  Nr  )r(   rJ   r   r  r  r  r  r/   r   r  r   )rr   r  zgbtrsr  r  r  r  r   s   &       rT   test_zgbtrsTestEigBanded.test_zgbtrs@  s|     *bmm;
 $*$*;*;TWWdgg#N Dww$GT]]DGG4!!+rV   r   c                   \         P                  ! RVR7      p\        V4      w  r4\        \         P                  ! ^ ^ .^^..VR7      4      w  rVVP                  R8X  g   Q hVP
                  VP
                  8X  g   Q hVP                  R8X  g   Q hVP
                  VP
                  8X  g   Q h\        VRR7      pVP                  R8X  g   Q hVP
                  VP
                  8X  g   Q hR# r   r   Teigvals_onlyNr   r   )rJ   r   r   r,   r8   rR   )rr   r   a_bandrt   rb   rT  v_ns   &&     rT   r   TestEigBanded.test_emptyM  s    &+&!bhhAA'7rBCww$ww#))###ww&   ww#))###vD1ww$ww#))###rV   )r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  N)r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   rZ   r   rJ   r3   r   r4   r   r   r   r   s   @rT   r  r  "  s     M$bFFFGG(?T8Jt, , ,, [[TC

GR\\#RS$ T$rV   r  c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
TestEigTridiagonali^  c                &    V P                  4        R # r  )create_trimatr  s   &rT   r  TestEigTridiagonal.setup_method_  s    rV   c                   ^
p\        VR4      V n        \        V^,
          R4      V n        \        V P                  4      \        V P                  R4      ,           \        V P                  ^4      ,           V n        \
        P                  ! V P                  4      w  r#VP                  p\        V4      pW$,          V n	        VRV3,          V n
        R# )z>Create the full matrix `self.fullmat`, `self.d`, and `self.e`.r  r   Nr  r   )r.   ra   er-   full_matr/   r
   r  r0   rt   r  )rr   r  r  r  r  s   &    rT   r   TestEigTridiagonal.create_trimatb  s     aac4dffTVVR(884?JDMM*WWr{q$wK	rV   c           	        \        \        \        V P                  V P                  RR 4       \        \
        \        V P                  V P                  R,          4       \        \
        \        V P                  V P                  RR7       \        \        \        V P                  V P                  RR7       \        \        \        V P                  V P                  RR	R7       R# )
zTest error conditions.NrH   r  lapack_driverfoor   r  r   r   r   )r6  r7  r#   ra   r  r\   r  s   &rT   test_degenerate"TestEigTridiagonal.test_degenerateq  s     	j"6sLi!5tvvtvv{Ki!5tvvtvv$&	(j"6$)	+ 	j"6 w	8rV   c                   R FD  p\        V P                  V P                  VR7      p\        \	        V4      V P
                  4       KF  	  R	 F1  p\        \        \         V P                  V P                  VRR
R7       K3  	  R EF5  p\        V P                  V P                  R^ \        V P                  4      ^,
          3VR7      p\        \	        V4      V P
                  4       ^p^p\        V P                  V P                  RWE3VR7      p\        \	        V4      V P
                  WE^,            4       V P
                  V,          R,
          pV P
                  V,          R,           p\        V P                  V P                  RWg3VR7      p\        \	        V4      V P
                  WE^,            4       EK8  	  R# )z>Compare eigenvalues of eigvalsh_tridiagonal with those of eig.r  r   r  r  r  r  r  r  r  rb   N)sterfstevstevdstebzstemrauto)r!  r"  r#  r   r$  r%  r&  )	r#   ra   r  r   r9   rt   r6  r7  r[   )	rr   driverrt   w_indr  r  r  r  w_vals	   &        rT   test_eigvalsh_tridiagonal,TestEigTridiagonal.test_eigvalsh_tridiagonal  sa    KF$TVVTVV6JA%d1gtvv6 K 1F*&:DFFDFF(.s'-/ 1 1F(s!S[]9K$&E &d5k466: DD(s$$&E &d5k466$Av3FG ffTlV+GffTlV+G(s'9K$&E &d5k466$Av3FG+ 1rV   c                   \        \        \        V P                  V P                  RR7       R F  p\        V P                  V P                  VR7      w  r#VR\        V4      3,          p\        \        V4      V P                  4       \        \        V4      \        V P                  4      4       K  	  \        \        \        V P                  V P                  RRRR7       R EF  p^ p\        V P                  4      ^,
          p\        V P                  V P                  RWV3VR7      w  r#\        \        V4      V P                  4       \        \        V4      \        V P                  4      4       ^p^p\        V P                  V P                  RWV3VR7      w  r#\        \        V4      V P                  WV^,            4       \        \        V4      \        V P                  RWV^,           13,          4      4       V P                  V,          R,
          pV P                  V,          R,           p\        V P                  V P                  R	Wx3VR7      w  r#\        \        V4      V P                  WV^,            4       \        \        V4      \        V P                  RWV^,           13,          4      4       EK  	  R
# )zLCompare eigenvalues and eigenvectors of eigh_tridiagonal
with those of eig. r!  r  r"  r   r   r  r   r  rb   N)r$  r"  r#  r%  r&  r   r'  )r6  r7  r$   ra   r  r0   r   r9   rt   r   r  r[   )	rr   r(  rt   r  r  r  r  r  r  s	   &        rT   test_eigh_tridiagonal(TestEigTridiagonal.test_eigh_tridiagonal  s    	j"2DFFDFF$+	-AF&tvvtvvVLGAGAJ'E%d1gtvv6%c%j#dii.A	 B 	j"2DFFDFF$*3V	M0FDtvv;q=D&s$$&GA &d1gtvv6%c$iTYY@DD&s$$&GA &d1gtvvd6/BC%c$i&)$))AtF{N*C&DF ffTlV+GffTlV+G&s'9K$&GA &d1gtvvd6/BC%c$i&)$))AtF{N*C&DF3 1rV   c                   \         P                  ! R.4      p\         P                  ! . 4      p\        WRR7      pVP                  ^8X  g   Q h\	        W14       \        WRR	R7      w  r4VP                  ^8X  g   Q hVP                  ^8X  g   Q h\	        W14       \	        V\        R..4      4       \        WRR
R7      w  r4VP
                  ^ 8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hR# )zSee gh-20075Tr	  r   r  r  rb   Nr  r   )r   r   r   r   )rJ   r,   r$   rh  r   r   r8   )rr   rs   r   xrP  s   &    rT   test_eigh_tridiagonal_1x1,TestEigTridiagonal.test_eigh_tridiagonal_1x1  s    HHdVHHRLQ5vv{{SvFvv{{vv{{52$=)SwGvv{{ww$ww&   rV   )ra   r  r  r  rt   N)r   r   r   r   r  r  r  r+  r.  r2  r   r   r   s   @rT   r  r  ^  s,      8 HD(FT! !rV   r  c                   H  a  ] tR tRt o R tR tR tR t]]	P                  P                  R4      R 4       4       t]	P                  P                  R]4      ]	P                  P                  R	R4      R
 4       4       t]	P                  P                  R	R4      R 4       t]	P                  P                  RR4      ]	P                  P                  R	R4      R 4       4       tR t]	P                  P                  R]]]P,                  ]]P0                  .4      R 4       tRtV tR# )TestEighi  c           	        \        \        \        \        P                  ! ^^.4      4       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      4       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      4       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      ^R7       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      ^^.^^.R7       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      ^ ^.R7       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      R^.R7       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      ^^ .R7       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      ^^ .R7       \        \        \        \        P                  ! ^^.4      RR7       \        \        \        \        P                  ! ^^.4      RRR7       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      R	R7       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      R
^^.R7       \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      R
^^.R7       R# )ri   )type)subset_by_valuesubset_by_indexr9  r8  wrongr(  Ngvxevrgvd)r(  r9  r   )r6  r7  r   rJ   r   r  s   &rT   test_wrong_inputsTestEigh.test_wrong_inputs  sT   j$A8j$A!QIj$A!QIj$A!Q	 	j$A!Q'(!fq!f	F 	j$A!Q'(!f	. 	j$A!Q')1g	/ 	j$A!Q'(!f	. 	j$A!Q'(!f	. 	j$AHj$AeLj$A!Q"	$ 	j$A!Q"QF	<j$A!Q"QF	<rV   c           	         \        \        \        \        P                  ! ^^.4      \        P                  ! ^^.4      4       R# rl   N)r6  r'   r   rJ   r   r  s   &rT   test_nonpositive_bTestEigh.test_nonpositive_b  s(    k4!Q"''1a&/JrV   c                   \        \        4       F  w  r\        ^VR7      p\        VR^.R7      w  rE\	        VP
                  ^,          \        V4      4       \        VR8  V^8  ,          4      '       g   Q h\        ^RVR7      p\        W6R^.R7      w  rE\	        VP
                  ^,          \        V4      4       \        VR8  V^8  ,          4      '       d   K  Q h	  R# )   r   r;  T)rQ   rR   Nr   )	enumerateDTYPESrU   r   r   r8   r[   r   )rr   indr   rs   rt   rb   r   s   &      rT   test_value_subsetsTestEigh.test_value_subsets
  s     (GC(26AB73DASV,B1q5)****(DCAr1g6DASV,B1q5)**** )rV   c                ~    \        ^^.^^..4      p\        ^^.^^..4      p\        V4      w  r4\        W4      w  r4R# ri   N)r,   r   )rr   rs   r   rt   zs   &    rT   test_eigh_integerTestEigh.test_eigh_integer  sH    Aq6Aq6"#Aq6Aq6"#AwAz1rV   zignore::DeprecationWarningc                    ^ RI pVP                  P                  ^4      P                  4       p\        P
                  ! V4      p\        \        \        V4       \        \        \        V4       R# )r   N)	scipy.sparsesparse	eye_arraytocscrJ   
atleast_2dr6  r7  r   )rr   scipyrs   r   s   &   rT   test_eigh_of_sparseTestEigh.test_eigh_of_sparse  sJ     	LL""1%++-MM!j$*j$*rV   dtype_r(  c                    \        ^VR7      p\        W1R7      w  rE\        W5,          WT,          ,
          RR\        P                  ! V4      P
                  ,          RR7       R# )rH  )rP   rR   r=  r     r   r   N)rU   r   r   rJ   finfoeps)rr   r(  r\  rs   rt   rb   s   &&&   rT   test_various_drivers_standard&TestEigh.test_various_drivers_standard'  sJ     %r8A%!"((6"2"6"66	!rV   c                   \        ^..VR7      w  r#\        V\        R.4      RR7       \        V\        R..4      RR7       \        R..VR7      w  r#\        V\        ^ .4      RR7       \        V\        R..4      RR7       R# )ri   r=  r  V瞯<rB  rH   N)r   r   r,   )rr   r(  rt   rb   s   &&  rT   test_1x1_lworkTestEigh.test_1x1_lwork0  st    aSE&)5";U352$=u5 bTF6*5!:E252$=u5rV   r7  c                   \         P                  ! R 4      p\        ^4      p\        ^RR7      p\        WEWR7      w  rgV^8X  d,   \	        WG,          WeV,          ,          ,
          RVRR7       R# V^8X  d,   \	        WE,          V,          Wv,          ,
          RVRR7       R# \	        WT,          V,          Wv,          ,
          RVRR7       R# )g     @T)rQ   )rs   r   r(  r7  r   r_  N)rJ   spacingrU   r   r   )rr   r(  r7  r   rs   r   rt   rb   s   &&&     rT    test_various_drivers_generalized)TestEigh.test_various_drivers_generalized;  s     zz% $R($R5aV719AEA1uI-r2FQYAEAI-r2FAEAI-r2FrV   c                ~   \        ^4      p\        V^^.R7      p\        \        V4      ^4       \        V^^.R7      p\        \        V4      ^4       \	        W#4       \
        P                  ! . RO4      p\        V^R.R7      p\        \        V4      ^4       \	        V\
        P                  ! RR.4      4       R# )rn   r:  333333??gffffff?r;  N)ri   rm  rn        ?rk   )rU   r   r   r[   r   rJ   r-   r,   )rr   rs   rt   w2r   w3s   &     rT   test_eigvalsh_new_argsTestEigh.test_eigvalsh_new_argsI  s    $Q'QA/SVQa!Q0SWa GG)*a!S2SWa BHHc3Z01rV   r   c                   \         P                  ! RVR7      p\        V4      w  r4\        \         P                  ! ^VR7      4      w  rVVP                  R8X  g   Q hVP
                  VP
                  8X  g   Q hVP                  R8X  g   Q hVP
                  VP
                  8X  g   Q h\        VRR7      p\        V\         P                  ! R4      4       VP                  R8X  g   Q hVP
                  VP
                  8X  g   Q hR# r  )rJ   r   r   r>   r8   rR   r   )rr   r   rs   rt   rb   rT  r  s   &&     rT   r   TestEigh.test_emptyW  s    HHV2&Awq+,ww$ww#))###ww&   ww#))###&288D>*ww$ww#))###rV   r   N)r  evdr?  evxrj   )gvr@  r>  )r   r   r   r   rA  rE  rL  rQ  rC   r   r   rL  rZ  r   rJ  rb  rf  rj  rr  rZ   r   rJ   r3   r   r4   r   r   r   r   s   @rT   r5  r5    s-    $<LK+ [[ <=+ > + [[Xv.[[X'BC! D /! [[X'BC6 D6 [[VY/[[X';<
G = 0
G2 [[TC

GR\\#RS$ T$rV   r5  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]P"                  P%                  ]'       * RR7      ]P"                  P(                  R 4       4       t]P"                  P-                  R. R$O4      ]P"                  P-                  R. R$O4      ]P"                  P-                  R]4      R 4       4       4       t]P"                  P-                  R]]]P8                  ]]P<                  .4      ]P"                  P-                  R%. R&O4      R 4       4       t]P"                  P-                  R]]].4      ]P"                  P-                  RRR.4      ]P"                  P-                  R^^.4      ]P"                  P-                  RRR.4      ]P"                  P-                  RRR.4      ]P"                  P-                  R R'R(.4      R! 4       4       4       4       4       4       t R"t!V t"R## ))TestSVD_GESDDij  gesddc                j    \        \        \        R ..R R7       \        \        \        R ..RR7       R# )r  r  r  N)r6  r\   r   r7  r  s   &rT   r  TestSVD_GESDD.test_degeneratem  s&    itfB?j#vUCrV   c                   . RO. RO. RO.pR F  p\        WV P                  R7      w  r4p\        VP                  V,          \	        ^4      4       \        VP                  V,          \	        ^4      4       \        VP                  ^ ,          VP                  ^ ,          3VP                  P                  4      p\        \        V4      4       F  pWG,          WgV3&   K  	  \        W6,          V,          V4       K  	  R# )ri   full_matricesr  Nrj   ri   rH  rl   rm   TFr   r  r   rN   r>   r1   r8   rR   charr   r[   rr   rs   r  r  svhsigmar   s   &       rT   rv   TestSVD_GESDD.test_simpleq  s    
I.*M1)-););=HA"%accAgs1v6%bddRiQ81771:rxx{3QWW\\BE3q6]dd #%ai"na8 +rV   c                   . RO. RO. RO.pR F  p\        WV P                  R7      w  r4p\        VP                  V,          \	        ^4      4       \        VP                  V,          \	        ^4      4       \        VP                  ^ ,          VP                  ^ ,          3VP                  P                  4      p\        \        V4      4       F  pWG,          WgV3&   K  	  \        W6,          V,          V4       K  	  R# )ri   r  Nrj   rm   r  r  r  s   &       rT   test_simple_singular"TestSVD_GESDD.test_simple_singular}  s    	9-*M1)-););=HA"%accAgs1v6%bddRiQ81771:rxx{3QWW\\BE3q6]dd #%ai"na8 +rV   c                   . RO. RO.pR F  p\        WV P                  R7      w  r4p\        VP                  V,          \	        VP
                  ^ ,          4      4       \        VP
                  ^ ,          VP
                  ^ ,          3VP                  P                  4      p\        \        V4      4       F  pWG,          WgV3&   K  	  \        W6,          V,          V4       K  	  R# )ri   r  Nrj   rZ  rn   ro   r  r   r  r   rN   r>   r8   r1   rR   r  r   r[   r  s   &       rT   test_simple_underdet"TestSVD_GESDD.test_simple_underdet  s    	"*M1)-););=HA"%accAgs1771:?1771:rxx{3QWW\\BE3q6]dd #%ai"na8 +rV   c                &   ^^.^^.^^..pR F  p\        WV P                  R7      w  r4p\        VP                  V,          \	        VP
                  ^,          4      4       \        VP                  V,          \	        ^4      4       \        VP
                  ^,          VP
                  ^ ,          3VP                  P                  4      p\        \        V4      4       F  pWG,          WgV3&   K  	  \        W6,          V,          V4       EK  	  R# )ri   r  Nr  r  r  s   &       rT   test_simple_overdet!TestSVD_GESDD.test_simple_overdet  s    VaVaV$*M1)-););=HA"%accAgs1771:?%bddRiQ81771:rxx{3QWW\\BE3q6]dd #%ai"na8 +rV   c           
        \         P                  P                  R 4      p^p^p\        ^4       EFG  pVP                  W#.4      VP                  W2.4      3 EF  pR EF  p\	        WVV P
                  R7      w  rxp	\        VP                  V,          \        VP                  ^,          4      4       \        WP                  ,          \        V	P                  ^ ,          4      4       \        VP                  ^,          V	P                  ^ ,          3VP                  P                  4      p
\        \        V4      4       F  pW,          WV3&   K  	  \        Wz,          V	,          V4       EK  	  EK  	  EKJ  	  R# )r-  r  Nr  )rJ   rK   r.  r   r   r  r   rN   r>   r8   r1   rR   r  r[   )rr   r_   rP   mr   rs   r  r  r  r  r  s   &          rT   test_randomTestSVD_GESDD.test_random  s
   ii##D)qAjj!(#**aV*<=%2M"1151C1C EHA"-accAgs1771:G-b44iRXXa[9IJ!1771:rxx{";QWW\\JE"3q6]&'dd +-ai"na@ &3 > rV   c                   . RO. RO. RO.pR EF,  p\        WV P                  R7      w  r4p\        VP                  4       P                  V,          \        VP                  ^,          4      4       \        VP                  4       P                  V,          \        VP                  ^ ,          4      4       \        VP                  ^ ,          VP                  ^ ,          3VP                  P                  4      p\        \        V4      4       F  pWG,          WgV3&   K  	  \        W6,          V,          V4       EK/  	  R# )ri   r  Nrj   )ri   y               @rl   rm   r  )r   r  r   rM   rN   r>   r8   r1   rR   r  r   r[   r  s   &       rT   r~   !TestSVD_GESDD.test_simple_complex  s    
I.*M1)-););=HA"%affhjj1nc!''!*oF%bggikkB&6BHHQK8HI1771:rxx{3QWW\\BE3q6]dd #%ai"na8 +rV   c           
        \         P                  P                  R 4      p^p^p\        ^4       EFQ  pR EFF  pVP                  W#.4      VP                  W2.4      3 EF  pVRVP                  \	        VP
                  4      4      ,          ,           p\        WeV P                  R7      w  rxp	\        VP                  4       P                  V,          \        VP
                  ^,          4      4       \        VP
                  ^,          V	P
                  ^ ,          3VP                  P                  4      p
\        \        V4      4       F  pW,          WV3&   K  	  \        Wz,          V	,          V4       EK  	  EKI  	  EKT  	  R# )r-  rH   r  Nr  )rJ   rK   r.  r   listr8   r   r  r   rM   rN   r>   r1   rR   r  r[   )rr   r_   rP   r  r   r  rs   r  r  r  r  s   &          rT   test_random_complex!TestSVD_GESDD.test_random_complex  s   ii##D)qA!.**aV,cjj!.@AABszz$qww-888A"1151C1C EHA"-affhjj1n.1!''!*o?
 "1771:rxx{";QWW\\JE"3q6]&'dd +-ai"na@ B "/ rV   c                R   \         P                  P                  R 4      p. ROpV F}  p\         P                  \         P                  \         P
                  \         P                  3 F8  pVP                  ! V!  P                  V4      p\        WPP                  R7       K:  	  K  	  R# )r-  r  N))r  r  )r  2   )<   d   )rJ   rK   r.  r3   r   r4   r   rL   rO   r   r  )rr   r_   sizesszr   rs   s   &     rT   test_crash_1580TestSVD_GESDD.test_crash_1580  so    ii##D)/Bzz2::r||R]]KHHbM((,A%7%78 L rV   c                   . RO. RO. RO.p\        VRV P                  R7      w  r#p\        VP                  V,          \	        ^4      4       \        VP                  V,          \	        ^4      4       \        VP                  ^ ,          VP                  ^ ,          3VP                  P                  4      p\        \        V4      4       F  pW6,          WVV3&   K  	  \        W%,          V,          V4       R# )ri   F)r   r  Nrj   r  rm   r  )rr   rs   r  r  r  r  r   s   &      rT   r2  TestSVD_GESDD.test_check_finite  s    
I.quD<N<NOb!!##'3q62!"$$)SV4qwwqz288A;/>s1vA$EQ$K !!)b.!4rV   c                v    \         P                  ! . RO. RO. RO. RO.4      p\        WP                  R7       R# )K}\UU?r  N)r  vWUU?r  r   r   r   )r   r  r  r  r   r   )r   r   r  r  r  r   )r   r   r   r  r  r  )rJ   r,   r   r  )rr   r   s   & rT   test_gh_5039TestSVD_GESDD.test_gh_5039  s4     HH====?@
 	A//0rV   z64-bit LAPACK requiredreasonc                    \        R R7       \        P                  ! ^R.\        P                  R7      p^VR&   \	        VRR7      w  r#p\        V^ ,          R4       \        VR	,          VR,          ,          R4       R# )
ihB  free_mbr   Fr  r  Nl        r  r   )rA   rJ   r1   r3   r   r   )rr   rS   r  r  r  s   &    rT   test_large_matrixTestSVD_GESDD.test_large_matrix  sb     	%(HHaZrzz2%q.b!c"$"U)+S1rV   r  rP   rR   c                   \         P                  ! W3VR 7      p\        W4      pVP                  P                  pVR9   d   VP                  4       MTp\        V4      w  rp
\        VP                  W34       \        VP                  V4       \        V	P                  V34       \        V	P                  \         P                  ! V4      4       \        V
P                  W"34       \        V
P                  V4       \        VRR7      w  rp
\        VP                  W34       \        VP                  V4       \        V	P                  V34       \        V	P                  \         P                  ! V4      4       \        V
P                  WR34       \        V
P                  V4       \        VRR7      p	\        V	P                  V34       \        V	P                  \         P                  ! V4      4       R# )r   FDFr  
compute_uvN)	rJ   r1   minrR   r  lowerr   r   r8   )rr   r  rP   rR   rs   r)  dchar
real_dcharr  r  rb   s   &&&&       rT   test_shape_dtypeTestSVD_GESDD.test_shape_dtype  sU    HHaV5)I&+tmU[[]
a&aQWWqf%QWWe$QWWqd#QWWbhhz23QWWqf%QWWe$au-aQWWqf%QWWe$QWWqd#QWWbhhz23QWWqf%QWWe$e$QWWqd#QWWbhhz23rV   r   c                8   \         P                  ! ^VR7      p\        V4      w  rVp\         P                  ! W#3VR7      p\        V4      w  rp\	        V	\         P
                  ! V4      4       \	        V
\         P                  ! R4      4       \	        V\         P
                  ! V4      4       V	P                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hV
P                  VP                  8X  g   Q h\        VRR7      w  rp\	        V	\         P                  ! V^ 34      4       \	        V
\         P                  ! R4      4       \	        V\         P                  ! ^ V34      4       V	P                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hV
P                  VP                  8X  g   Q h\        VRR7      p
\	        V
\         P                  ! R4      4       V
P                  VP                  8X  g   Q hR# )rl   r   Fr  r  Nr   )rJ   r>   r   r   r   identityrR   )rr   r   r  rP   a0u0s0r   rs   r  r  rb   s   &&&&        rT   r   TestSVD_GESDD.test_empty  s~    VVAR W
HHaV2&a&a2;;q>*288D>*2;;q>*ww"(("""ww"(("""ww"(("""au-a288QF+,288D>*288QF+,ww"(("""ww"(("""ww"(("""e$288D>*ww"(("""rV   rd  re  rf  rg  rh  ri  TFr  mnc                   Vw  rx\         P                  ! Wx,          4      P                  Wx4      p	V	P                  WR 7      p	V^8X  d    \         P                  ! V	^V	,          .4      p	V	P                  4       p
\        V	V P                  VVRR7      w  rpV'       d   \        WV4      pMXV^8X  d   \         P                  ! V4      pM:\         P                  ! V Uu. uF  p\         P                  ! V4      NK  	  up4      p\        W,          V,          V
RR7       T;'       dF    V	P                  \        8g  ;'       d+    V	P                  ^8H  ;'       d    V	P                  R,          pW8H  P                  4       V8w  g   Q hR# u upi )rk  T)r  r  ri  r  -q=rB  rm  N)rJ   r2   r5  rO   rn  ry   r   r  r   r-   r   rR   rZ   rh  ro  r   )rr   rd  re  rh  ri  r  r  r  rP   rs   rp  r  r  r  diag_sr1  rq  s   &&&&&&&          rT   test_overwriteTestSVD_GESDD.test_overwrite9  sH    IIacN""1(HH4H-19!QqS"A,,'#
b Q1%Fqyq"9q!2771:q"9:
RU;  $ $WW^$ $VVq[$ $ GGN#	 	 
!Y... #:s   Fr   Nr   ri   rk   r  rP   r   r   r   )rl   rn   )rn   rl   )#r   r   r   r   r  r  rv   r  r  r  r  r~   r  r  r2  r  r   r   skipifrB   slowr  r   rJ  r  rZ   r   rJ   r3   r   r4   r   r  r   r   r   s   @rT   rz  rz  j  s    MD
9
9	9
9A 
9A(951" [[I.FG[[2  H2 [[S),[[S),[[Wf-4 . - -44 [[TC

GR\\#RS[[Z)AB# C T#8 [[Vc5'%:;[[WsCj1[[VaV,[[]T5M:[[_tUm<[[TFF#34%/ 5 = ; - 2 <%/rV   rz  c                       ] tR tRtRtRtR# )TestSVD_GESVDig  gesvdr   N)r   r   r   r   r  r   r   rV   rT   r  r  g  s    MrV   r  zout of memory in WASMr  z#out of memory in 32-bit CI workflowzdoes not fail; is too slowc                      \        R R7       \        P                  ! R\        P                  R7      p \	        \
        4      ;_uu_ 4        \        V 4       RRR4       R#   + '       g   i     R# ; i)i8J  r  r   N)i  i  )rA   rJ   r   r   r6  r7  r   )dfs    rT   test_svd_gesdd_nosegfaultr  m  sA     f%	ww}BJJ/B	z	"	"B 
#	"	"	"s   
A  A1	c                      \         P                  ! ^4      p \         P                  V R&   \        P                  ! \
        RR7      ;_uu_ 4        \        V RR7       RRR4       R#   + '       g   i     R# ; i)rk   NaN)matchFr   Nr   )rJ   r>   nanr   r	   r7  r   rS   s    rT   test_gesdd_nan_error_messager  {  sF    
q	AffAdG	z	/	/AE" 
0	/	/	/s   A&&A7	c                      a  ] tR tRt o ]P
                  P                  R]]]	P                  ]]	P                  .4      R 4       tR tR tR tR tR tR	 tR
 t]P
                  P*                  R 4       tRtV tR# )TestSVDValsi  r   c                p   . .\         P                  ! R4      \         P                  ! R4      3 F  p\         P                  ! W!R7      p\	        V4      p\        V\         P                  ! ^ 4      4       \	        \         P                  ! ^VR7      4      pVP                  VP                  8X  d   K  Q h	  R# )rk   r   Nr   r   rl   )rJ   r   r   r,   r   r   r>   rR   )rr   r   rs   r  r  s   &&   rT   r   TestSVDVals.test_empty  sz    rxx'8A%A
ABHHQK(,-B77bhh&&& 9rV   c                    . RO. RO. RO.p\        V4      p\        \        V4      ^8H  4       \        V^ ,          V^,          u;8  ;'       d    V^,          8  4       R# u 4       R# rh   r   r   r[   rr   rs   r  s   &  rT   rv   TestSVDVals.test_simple  sN    	9-AJA!!!$$!$%$%rV   c                    . RO. RO.p\        V4      p\        \        V4      ^8H  4       \        V^ ,          V^,          8  4       R# )ri   Nrj   r  r  r  s   &  rT   r   TestSVDVals.test_simple_underdet  s9    	"AJA!!!rV   c                    ^^.^^.^^..p\        V4      p\        \        V4      ^8H  4       \        V^ ,          V^,          8  4       R# rO  r  r  s   &  rT   r  TestSVDVals.test_simple_overdet  sG    VaVaV$AJA!!!rV   c                    . RO. RO. RO.p\        V4      p\        \        V4      ^8H  4       \        V^ ,          V^,          u;8  ;'       d    V^,          8  4       R# u 4       R# )ri   Nrj   )ri   rH                @rm   r  r  s   &  rT   r~   TestSVDVals.test_simple_complex  sN    Y/AJA!!!$$!$%$%rV   c                    . RO. RO.p\        V4      p\        \        V4      ^8H  4       \        V^ ,          V^,          8  4       R# )ri   Nrj   )rZ  y              @ro   r  r  s   &  rT   test_simple_underdet_complex(TestSVDVals.test_simple_underdet_complex  s9    
#AJA!!!rV   c                    ^^.^^.R^..p\        V4      p\        \        V4      ^8H  4       \        V^ ,          V^,          8  4       R# )ri   r  Nr  r  s   &  rT   test_simple_overdet_complex'TestSVDVals.test_simple_overdet_complex  sG    VaVb!W%AJA!!!rV   c                    . RO. RO. RO.p\        VRR7      p\        \        V4      ^8H  4       \        V^ ,          V^,          u;8  ;'       d    V^,          8  4       R# u 4       R# r   r  r  s   &  rT   r2  TestSVDVals.test_check_finite  sQ    	9-AE*A!!!$$!$%$%rV   c                |    \         P                  P                  R 4      pVP                  R4      p\        V4       R# )r-  N)i  i
  )rJ   rK   r[  r   )rr   r_   rs   s   &  rT   test_crash_2609TestSVDVals.test_crash_2609  s+    ii##D)JJ|$
rV   r   N)r   r   r   r   r   r   r   rZ   r   rJ   r3   r   r4   r   rv   r  r  r~   r  r  r2  r  r  r   r   r   s   @rT   r  r    s}     [[TC

GR\\#RS' T'&&& [[ rV   r  c                   &   a  ] tR tRt o R tRtV tR# )TestDiagSVDi  c                J    \        \        . RO^^4      . RO. RO. RO.4       R# )ri   Nri   r   r   r  )r   r   r  s   &rT   rv   TestDiagSVD.test_simple  s     !')Q":#,i"C	ErV   r   N)r   r   r   r   rv   r   r   r   s   @rT   r  r    s     E ErV   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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,R+ t-R, t.R- t/R. t0R/ t1R0 t2R1 t3R2 t4R3 t5R4 t6R5 t7]8Pr                  Pu                  R6. RJO4      ]8Pr                  Pu                  R7. RJO4      ]8Pr                  Pu                  R8R9R:.4      ]8Pr                  Pu                  R;];4      R< 4       4       4       4       t<]8Pr                  Pu                  RK. RLO4      R= 4       t=R> t>]8Pr                  Pu                  R8R:R9.4      ]8Pr                  Pu                  R?. RMO4      ]8Pr                  Pu                  R;];4      R@ 4       4       4       t?RA t@]8Pr                  Pu                  R;];4      RB 4       tA]B]8Pr                  Pu                  R;]C]D.4      ]8Pr                  Pu                  RC. RNO4      ]8Pr                  Pu                  R8R:R9.4      ]8Pr                  Pu                  RDRERF.4      ]8Pr                  Pu                  R?. ROO4      RG 4       4       4       4       4       4       tERHtFV tGRI# )PTestQRi  c                    . RO. RO. RO.p\        V4      w  r#\        VP                  V,          \        ^4      4       \        W#,          V4       R#    Nr  rk   rl   rk   r!  rl   rn   rl   ro   r   r   rN   r>   rr   rs   qrs   &   rT   rv   TestQR.test_simple  s;    	9-!u!!##'3q62!!%+rV   c                    . RO. RO. RO.p\        V4      w  r#. ROp\        WR4      w  rV\        W$,          V4       \        W64       \        V\        ^4      R4      w  rV\        W%4       R# )r  r   Nr  r  r  rj   r   r   r   r>   rr   rs   r  r  cqcr2s   &      rT   test_simple_leftTestQR.test_simple_left  s\    	9-!uQ6*!!%,!!(QA/!!(rV   c                    . RO. RO. RO.p\        V4      w  r#. ROp\        W4      w  rV\        WB,          V4       \        W64       \        V\        ^4      4      w  rS\        W%4       R# )r  Nr  r  r  rj   r  r  s   &      rT   test_simple_rightTestQR.test_simple_right  sX    	9-!uQ"!!%,!!(As1v&!!(rV   c                   \         P                  ! . RO. RO. RO.4      p\        VRR7      w  r#p\        \	        V4      4      p\        \         P                  ! VR,          VRR	 8*  4      4       \        VP                  V,          \        ^4      4       \        W#,          VRV3,          4       \        VRV3,          4      w  rg\        W&4       \        W74       R# )
r  Tpivotingri   NNNr   r  r  r  r   
rJ   r;   r   r   r-   r   r   r   rN   r>   rr   rs   r  r  pra   q2r  s   &       rT   test_simple_pivotingTestQR.test_simple_pivoting  s    JJ	9i89Q&aQLqu#2'(!!##'3q62!!%1a41AadG!!(!!(rV   c                    . RO. RO. RO.p\        VRR7      w  r#p. ROp\        WRR4      w  rcp\        W%,          V4       R# )	r  Tr  r   Nr  r  r  rj   r   r   r   rr   rs   r  r  jpvtr  r  s   &      rT   test_simple_left_pivoting TestQR.test_simple_left_pivoting  sA    	9-D)
d!!5t!!%,rV   c                    . RO. RO. RO.p\        VRR7      w  r#p. ROp\        WRR7      w  rcp\        WR,          V4       R# )r  Tr  Nr  r  r  rj   r   r!  s   &      rT   test_simple_right_pivoting!TestQR.test_simple_right_pivoting  s?    	9-D)
d!!6t!!%,rV   c                    . RO. RO.p\        V4      w  r#\        VP                  V,          \        ^4      4       \        W#,          V4       R# r  Nr  r  r  r  s   &   rT   test_simple_trapTestQR.test_simple_trap  9    	"!u!!##'3q62!!%+rV   c                   \         P                  ! . RO. RO.4      p\        VRR7      w  r#p\        \	        V4      4      p\        \         P                  ! VR,          VRR 8*  4      4       \        VP                  V,          \        ^4      4       \        W#,          VRV3,          4       \        VRV3,          4      w  rg\        W&4       \        W74       R# )	r  Tr  r  Nr   r  r  r   r  r  s   &       rT   test_simple_trap_pivoting TestQR.test_simple_trap_pivoting  s    JJ	9-.Q&aQLqu#2'(!!##'3q62!!%1a41AadG!!(!!(rV   c                    ^^.^^	.^^..p\        V4      w  r#\        VP                  V,          \        ^4      4       \        W#,          V4       R# r  Nr  r  s   &   rT   test_simple_tallTestQR.test_simple_tall  sG    VaVaV$!u!!##'3q62!!%+rV   c                   \         P                  ! ^^.^^	.^^..4      p\        VRR7      w  r#p\        \	        V4      4      p\        \         P                  ! VR,          VRR 8*  4      4       \        VP                  V,          \        ^4      4       \        W#,          VRV3,          4       \        VRV3,          4      w  rg\        W&4       \        W74       R# )r  Tr  r  Nr   r   r  r  s   &       rT   test_simple_tall_pivoting TestQR.test_simple_tall_pivoting  s    JJAAA/0Q&aQLqu#2'(!!##'3q62!!%1a41AadG!!(!!(rV   c                   ^^.^^	.^^..p\        VRR7      w  r#\        VP                  V,          \        ^4      4       \        W#,          V4       \	        VP
                  R4       \	        VP
                  R4       R# )r  economicmodeNrY  rk   rk   r   r   rN   r>   r   r8   r  s   &   rT   test_simple_tall_eTestQR.test_simple_tall_e  sf    VaVaV$!*%!!##'3q62!!%+QWWf%QWWf%rV   c                   \         P                  ! ^^.^^	.^^..4      p\        VRRR7      w  r#p\        \	        V4      4      p\        \         P                  ! VR,          VRR 8*  4      4       \        VP                  V,          \        ^4      4       \        W#,          VRV3,          4       \        VRV3,          RR7      w  rg\        W&4       \        W74       R# )	r  Tr8  r  r:  r  Nr   r9  r   r  r  s   &       rT   test_simple_tall_e_pivoting"TestQR.test_simple_tall_e_pivoting(  s    JJAAA/0QJ7aQLqu#2'(!!##'3q62!!%1a41AadG*-!!(!!(rV   c                J   ^^.^^	.^^..p\        VRR7      w  r#^^.p\        WR4      w  rV\        W$,          V4       \        W64       \        . RO4      p\        WRRR7      w  rV\        W$R,          ,          V4       \        V\	        ^4      R4      w  rS\        WR4       R# )	r  r8  r9  r   Toverwrite_cNrk   NNri   rk   r   r   r   r   r,   r>   r  s   &      rT   test_simple_tall_leftTestQR.test_simple_tall_left4  s    VaVaV$!*%FQ6*!!%,!!()Q6t<!!e)R0As1vv.!"(rV   c                    ^^.^^	.^^..p\        VRRR7      w  r#p^^.p\        WRR4      w  rcp\        WG4       \        W%,          V4       \        V\	        ^4      RR4      w  rcp\        Wb4       R# )r  r8  Tr:  r  r   N)r   r   r   r   r>   )rr   rs   r  r  r"  r  r  kpvts   &       rT   test_simple_tall_left_pivoting%TestQR.test_simple_tall_left_pivotingA  s{    VaVaV$
T:
dF!!5t4&!!%,!!SVVT:t!"(rV   c                    ^^.^^	.^^..p\        VRR7      w  r#. ROp\        W4      w  rV\        WB,          V4       \        W64       \        V\        ^4      4      w  rS\        WR4       R# )r  r8  r9  Nrj   r  rr   rs   r  r  r  cqr  s   &      rT   test_simple_tall_rightTestQR.test_simple_tall_rightK  sg    VaVaV$!*%Q"!!%,!!(As1v&!"(rV   c                    ^^.^^	.^^..p\        VRRR7      w  r#p. ROp\        WRR7      w  rcp\        WR,          V4       \        V\        ^4      RR7      w  rcp\        Wb4       R# )r  Tr8  r@  r  Nrj   r  rr   rs   r  r  r"  r  rR  s   &      rT   test_simple_tall_right_pivoting&TestQR.test_simple_tall_right_pivotingU  sk    VaVaV$Dz:
d!!6t!!%,!!SVd;t!"(rV   c                    . RO. RO.p\        V4      w  r#\        VP                  V,          \        ^4      4       \        W#,          V4       \	        VP
                  R4       \	        VP
                  R4       R# )r  Nr  rk   rn   r  r;  rk   rl   r<  r  s   &   rT   test_simple_fatTestQR.test_simple_fat^  sU    	"!u!!##'3q62!!%+QWWf%QWWf%rV   c                   \         P                  ! . RO. RO.4      p\        VRR7      w  r#p\        \	        V4      4      p\        \         P                  ! VR,          VRR 8*  4      4       \        VP                  V,          \        ^4      4       \        W#,          VRV3,          4       \        VP                  R	4       \        VP                  R
4       \        VRV3,          4      w  rg\        W&4       \        W74       R# )r  Tr  r  Nr   rZ  r  r   r;  r[  rJ   r;   r   r   r-   r   r   r   rN   r>   r   r8   r  s   &       rT   test_simple_fat_pivotingTestQR.test_simple_fat_pivotingg  s    JJ	9-.Q&aQLqu#2'(!!##'3q62!!%1a41QWWf%QWWf%AadG!!(!!(rV   c                    . RO. RO.p\        VRR7      w  r#\        VP                  V,          \        ^4      4       \        W#,          V4       \	        VP
                  R4       \	        VP
                  R4       R# )r  r8  r9  Nr  rk   r!  rn   r;  r[  r<  r  s   &   rT   test_simple_fat_eTestQR.test_simple_fat_eu  sX    	"!*%!!##'3q62!!%+QWWf%QWWf%rV   c                   \         P                  ! . RO. R	O.4      p\        VRRR7      w  r#p\        \	        V4      4      p\        \         P                  ! VR,          VRR
 8*  4      4       \        VP                  V,          \        ^4      4       \        W#,          VRV3,          4       \        VP                  R4       \        VP                  R4       \        VRV3,          RR7      w  rg\        W&4       \        W74       R# )r  Tr8  r@  r  Nr   r9  r  rc  r   r;  r[  r_  r  s   &       rT   test_simple_fat_e_pivoting!TestQR.test_simple_fat_e_pivoting~  s    JJ	9-.QJ7aQLqu#2'(!!##'3q62!!%1a41QWWf%QWWf%AadG*-!!(!!(rV   c                    . RO. RO.p\        VRR7      w  r#^^.p\        WR4      w  rV\        W$,          V4       \        W64       \        V\        ^4      R4      w  rS\        WR4       R# )r  r8  r9  r   Nr  rc  r  r  s   &      rT   test_simple_fat_leftTestQR.test_simple_fat_left  sa    	"!*%FQ6*!!%,!!(As1vv.!"(rV   c                    . RO. RO.p\        VRRR7      w  r#p^^.p\        WRR4      w  rcp\        W%,          V4       \        V\        ^4      RR4      w  rcp\        Wb4       R# )r  r8  TrL  r   Nr  rc  r  r!  s   &      rT   test_simple_fat_left_pivoting$TestQR.test_simple_fat_left_pivoting  se    	"
T:
dF!!5t!!%,!!SVVT:t!"(rV   c                    . RO. RO.p\        VRR7      w  r#^^.p\        W4      w  rV\        WB,          V4       \        W64       \        V\        ^4      4      w  rS\        WR4       R# )r  r8  r9  Nr  rc  r  rQ  s   &      rT   test_simple_fat_rightTestQR.test_simple_fat_right  s]    	"!*%FQ"!!%,!!(As1v&!"(rV   c                    . RO. RO.p\        VRRR7      w  r#p^^.p\        WRR7      w  rcp\        WR,          V4       \        V\        ^4      RR7      w  rcp\        Wb4       R# )r  Tr8  r@  r  Nr  rc  r  rV  s   &      rT   test_simple_fat_right_pivoting%TestQR.test_simple_fat_right_pivoting  sa    	"Dz:
dF!!6t!!%,!!SVd;t!"(rV   c                    . RO. RO. RO.p\        V4      w  r#\        VP                  4       P                  V,          \	        ^4      4       \        W#,          V4       R# rl   Nrl         @      @rn   rn   rk   y       @      @rl   rk      )r   r   rM   rN   r>   r  s   &   rT   r~   TestQR.test_simple_complex  sA    <3!u!!&&(**q.#a&9!!%+rV   c                    . RO. RO. RO.p\        V4      w  r#. ROp\        WR4      w  rS\        W$,          V4       \        V\        ^4      R4      w  rS\        W%4       R# )rl   r   Nrw  ry  rz  ri   rk   rx  r  rr   rs   r  r  r  r  s   &     rT   test_simple_complex_leftTestQR.test_simple_complex_left  sT    <3!uA&)!!%,As1vv.!!(rV   c                    . RO. RO. RO.p\        V4      w  r#. ROp\        W4      w  rS\        WB,          V4       \        V\        ^4      4      w  rS\        W%4       R# )rl   Nrw  ry  rz  r~  r  r  s   &     rT   test_simple_complex_right TestQR.test_simple_complex_right  sP    <3!uA!!!%,As1v&!!(rV   c                J   ^R.^^	.R	^..p\        VRR7      w  r#^R
.p\        WR4      w  rV\        W$,          V4       \        W64       \        . RO4      p\        WRRR7      w  rV\        W$R,          ,          V4       \        V\	        ^4      R4      w  rS\        WR4       R# )r  r8  r9  r   TrD  rF  Ny       @      @y      @      @       @       @rG  rH  r  s   &      rT   test_simple_tall_complex_left$TestQR.test_simple_tall_complex_left  s    YAq	*!*%IQ6*!!%,!!()Q6t<!!e)R0As1vv.!"(rV   c                    . RO. RO. RO.p\        V4      w  r#. ROp\        WRRR7      w  rS\        VP                  4       V,          V4       R# )	rl   r   T	conjugateNrw  ry  rz  r~  r   r   r   rM   r  s   &     rT   "test_simple_complex_left_conjugate)TestQR.test_simple_complex_left_conjugate  sB    <3!uA&D9!!&&(Q,3rV   c                    ^R.^R.^^..p\        VRR7      w  r#^R.p\        WRRR7      w  rS\        VP                  4       V,          V4       R# )	rl   r8  r9  r   Tr  Nrx  r  r  r  s   &     rT   'test_simple_complex_tall_left_conjugate.TestQR.test_simple_complex_tall_left_conjugate  sU    YD	Aq6*!*%IA&D9!!&&(Q,3rV   c                    . RO. RO. RO.p\        V4      w  r#\        P                  ! . RO4      p\        WRR7      w  rS\	        WBP                  4       ,          V4       R# )rl   Tr  Nrw  ry  rz  r~  )r   rJ   r,   r   r   rM   r  s   &     rT   #test_simple_complex_right_conjugate*TestQR.test_simple_complex_right_conjugate  sG    <3!uHH\"AD1!!ffh,3rV   c                   \        . RO. RO. RO.4      p\        VRR7      w  r#p\        \        V4      4      p\	        \
        P                  ! VR,          VRR	 8*  4      4       \        VP                  4       P                  V,          \        ^4      4       \        W#,          VRV3,          4       \        VRV3,          4      w  rg\        W&4       \        W74       R# )
rl   Tr  r  Nr   rw  ry  rz  r   )r,   r   r   r-   r   rJ   r   r   rM   rN   r>   r  s   &       rT   test_simple_complex_pivoting#TestQR.test_simple_complex_pivoting  s    <y9:Q&aQLqu#2'(!!&&(**q.#a&9!!%1a41AadG!!(!!(rV   c                    \        . RO. RO. RO.4      p\        VRR7      w  r#p. ROp\        WRR4      w  rcp\        W%,          V4       R# )	rl   Tr  r   Nrw  ry  rz  r~  r,   r   r   r   r!  s   &      rT   !test_simple_complex_left_pivoting(TestQR.test_simple_complex_left_pivoting  sF    <y9:D)
d!!5t!!%,rV   c                    \        . RO. RO. RO.4      p\        VRR7      w  r#p. ROp\        WRR7      w  rcp\        WR,          V4       R# )rl   Tr  Nrw  ry  rz  r~  r  r!  s   &      rT   "test_simple_complex_right_pivoting)TestQR.test_simple_complex_right_pivoting  sD    <y9:D)
d!!6t!!%,rV   c                   \         P                  P                  R 4      p^p\        ^4       FZ  pVP                  W".4      p\	        V4      w  rV\        VP                  V,          \        V4      4       \        WV,          V4       K\  	  R# r-  NrJ   rK   r.  r   r   r   rN   r>   rr   r_   rP   r)  rs   r  r  s   &      rT   r  TestQR.test_random  sf    ii##D)qA

A6"Aa5DA%accAgs1v6%aeQ/	 rV   c                T   \         P                  P                  R 4      p^p\        ^4       Fw  pVP                  W".4      p\	        V4      w  rVVP                  V.4      p\        WGR4      w  r\        WW,          V4       \        V\        V4      R4      w  r\        WX4       Ky  	  R# )r-  r   NrJ   rK   r.  r   r   r   r   r>   	rr   r_   rP   r)  rs   r  r  r  r  s	   &        rT   test_random_leftTestQR.test_random_left  s    ii##D)qA

A6"Aa5DA

A3Af-EB%aeR03q662EB%a, rV   c                P   \         P                  P                  R 4      p^p\        ^4       Fu  pVP                  W".4      p\	        V4      w  rVVP                  V.4      p\        WG4      w  r\        Wu,          V4       \        V\        V4      4      w  r\        WX4       Kw  	  R# r  r  	rr   r_   rP   r)  rs   r  r  r  rR  s	   &        rT   test_random_rightTestQR.test_random_right  s    ii##D)qA

A6"Aa5DA

A3A%EB%aeR03q6*EB%a, rV   c           	     
   \         P                  P                  R 4      p^p\        ^4       F  pVP                  W".4      p\	        VRR7      w  rVp\        \        V4      4      p\        \         P                  ! VR,          VRR 8*  4      4       \        VP                  V,          \        V4      4       \        WV,          VRV3,          4       \	        VRV3,          4      w  r\        WY4       \        Wj4       K  	  R# r-  Tr  r  Nr   r   rJ   rK   r.  r   r   r   r-   r   r   r   rN   r>   rr   r_   rP   r)  rs   r  r  r  ra   r  r  s   &          rT   test_random_pivotingTestQR.test_random_pivoting&  s    ii##D)qA

A6"AT*GA!DGABFF1R5AcrF?+,%accAgs1v6%aeQq!tW5!Q$[FB%a,%a, rV   c                   \         P                  P                  R 4      p^p^dp\        ^4       FZ  pVP                  W#.4      p\	        V4      w  rg\        VP                  V,          \        V4      4       \        Wg,          V4       K\  	  R# r  r  rr   r_   r  rP   r)  rs   r  r  s   &       rT   test_random_tallTestQR.test_random_tall4  sk    ii##D)qA

A6"Aa5DA%accAgs1v6%aeQ/	 rV   c                \   \         P                  P                  R 4      p^p^dp\        ^4       Fy  pVP                  W#.4      p\	        VRR7      w  rgVP                  V.4      p\        WXR4      w  r\        Wh,          V	4       \        V\        V4      R4      w  r\        W4       K{  	  R# )r-  r8  r9  r   Nr  )
rr   r_   r  rP   r)  rs   r  r  r  r  s
   &         rT   test_random_tall_leftTestQR.test_random_tall_left?  s    ii##D)qA

A6"Aaj)DA

A3Af-EB%aeR03q662EB%b, rV   c                X   \         P                  P                  R 4      p^p^dp\        ^4       Fw  pVP                  W#.4      p\	        VRR7      w  rgVP                  V.4      p\        WX4      w  r\        W,          V	4       \        V\        V4      4      w  r\        W4       Ky  	  R# r-  r8  r9  Nr  )
rr   r_   r  rP   r)  rs   r  r  r  rR  s
   &         rT   test_random_tall_rightTestQR.test_random_tall_rightM  s    ii##D)qA

A6"Aaj)DA

A3A%EB%aeR03q6*EB%b, rV   c           	        \         P                  P                  R 4      p^p^dp\        ^4       F  pVP                  W#.4      p\	        VRR7      w  rgp\        \        V4      4      p	\        \         P                  ! V	R,          V	RR 8*  4      4       \        VP                  V,          \        V4      4       \        Wg,          VRV3,          4       \	        VRV3,          4      w  r\        Wj4       \        W{4       K  	  R# r  r  rr   r_   r  rP   r)  rs   r  r  r  ra   r  r  s   &           rT   test_random_tall_pivoting TestQR.test_random_tall_pivoting[  s    ii##D)qA

A6"AT*GA!DGABFF1R5AcrF?+,%accAgs1v6%aeQq!tW5!Q$[FB%a,%a, rV   c                ~   \         P                  P                  R 4      p^p^dp\        ^4       F  pVP                  W#.4      p\	        VRR7      w  rg\        VP                  V,          \        V4      4       \        Wg,          V4       \        VP                  W#34       \        VP                  W334       K  	  R# r  )
rJ   rK   r.  r   r   r   rN   r>   r   r8   r  s   &       rT   test_random_tall_eTestQR.test_random_tall_ek  s    ii##D)qA

A6"Aaj)DA%accAgs1v6%aeQ/1&)1&) rV   c           	     t   \         P                  P                  R 4      p^p^dp\        ^4       EF  pVP                  W#.4      p\	        VRRR7      w  rgp\        \        V4      4      p	\        \         P                  ! V	R,          V	RR 8*  4      4       \        VP                  V,          \        V4      4       \        Wg,          VRV3,          4       \        VP                  W#34       \        VP                  W334       \	        VRV3,          RR7      w  r\        Wj4       \        W{4       EK  	  R# )	r-  Tr8  r@  r  Nr   r9  r   )rJ   rK   r.  r   r   r   r-   r   r   r   rN   r>   r   r8   r  s   &           rT   test_random_tall_e_pivoting"TestQR.test_random_tall_e_pivotingx  s    ii##D)qA

A6"AT
;GA!DGABFF1R5AcrF?+,%accAgs1v6%aeQq!tW51&)1&)!Q$j1FB%a,%a, rV   c                   \         P                  P                  R 4      p^dp^p\        ^4       FZ  pVP                  W#.4      p\	        V4      w  rg\        VP                  V,          \        V4      4       \        Wg,          V4       K\  	  R# r  r  r  s   &       rT   test_random_trapTestQR.test_random_trap  sk    ii##D)qA

A6"Aa5DA%accAgs1v6%aeQ/	 rV   c           	        \         P                  P                  R 4      p^dp^p\        ^4       F  pVP                  W#.4      p\	        VRR7      w  rgp\        \        V4      4      p	\        \         P                  ! V	R,          V	RR 8*  4      4       \        VP                  V,          \        V4      4       \        Wg,          VRV3,          4       \	        VRV3,          4      w  r\        Wj4       \        W{4       K  	  R# r  r  r  s   &           rT   test_random_trap_pivoting TestQR.test_random_trap_pivoting  s    ii##D)qA

A6"AT*GA!DGABFF1R5AcrF?+,%accAgs1v6%aeQq!tW5!Q$[FB%a,%a, rV   c                r   \         P                  P                  R 4      p^p\        ^4       F  pVP                  W".4      RVP                  W".4      ,          ,           p\	        V4      w  rV\        VP                  4       P                  V,          \        V4      4       \        WV,          V4       K  	  R# r-  rH   N)	rJ   rK   r.  r   r   r   rM   rN   r>   r  s   &      rT   r  TestQR.test_random_complex  s    ii##D)qA

A6"R

A6(:%::Aa5DA%affhjj1nc!f=%aeQ/	 rV   c                   \         P                  P                  R 4      p^p\        ^4       F  pVP                  W".4      RVP                  W".4      ,          ,           p\	        V4      w  rVVP                  V.4      RVP                  V.4      ,          ,           p\        WGR4      w  r\        WW,          V4       \        V\        V4      R4      w  r\        WX4       K  	  R# )r-  rH   r   Nr  r  s	   &        rT   test_random_complex_leftTestQR.test_random_complex_left  s    ii##D)qA

A6"R

A6(:%::Aa5DA

A3"SZZ_"44Af-EB%aeR03q662EB%a, rV   c                   \         P                  P                  R 4      p^p\        ^4       F  pVP                  W".4      RVP                  W".4      ,          ,           p\	        V4      w  rVVP                  V.4      RVP                  V.4      ,          ,           p\        WG4      w  r\        Wu,          V4       \        V\        V4      4      w  r\        WX4       K  	  R# r  r  r  s	   &        rT   test_random_complex_right TestQR.test_random_complex_right  s    ii##D)qA

A6"R

A6(:%::Aa5DA

A3"SZZ_"44A%EB%aeR03q6*EB%a, rV   c           	     d   \         P                  P                  R 4      p^p\        ^4       F  pVP                  W".4      RVP                  W".4      ,          ,           p\	        VRR7      w  rVp\        \        V4      4      p\        \         P                  ! VR,          VRR 8*  4      4       \        VP                  4       P                  V,          \        V4      4       \        WV,          VRV3,          4       \	        VRV3,          4      w  r\        WY4       \        Wj4       EK  	  R# )r-  rH   Tr  r  Nr   r   )rJ   rK   r.  r   r   r   r-   r   r   r   rM   rN   r>   r  s   &          rT   test_random_complex_pivoting#TestQR.test_random_complex_pivoting  s    ii##D)qA

A6"R

A6(:%::AT*GA!DGABFF1R5AcrF?+,%affhjj1nc!f=%aeQq!tW5!Q$[FB%a,%a, rV   c                    . RO. RO. RO.p\        VRR7      w  r#\        VP                  V,          \        ^4      4       \        W#,          V4       R# r  Fr   Nr  r  r  r  r  s   &   rT   r2  TestQR.test_check_finite  s>    	9-!%(!!##'3q62!!%+rV   c                   . RO. RO. RO.p\         P                  ! \        4      ;_uu_ 4        \        VRR7      w  r#RRR4       \         P                  ! \        4      ;_uu_ 4        \        VRR7      w  rE\	        VX4       \	        VX4       RRR4       \         P                  ! \        4      ;_uu_ 4        \        V^
R7      w  rg\	        VX4       \	        VX4       RRR4       \         P                  ! \        4      ;_uu_ 4        \        VRR7      w  r\	        VX4       \	        V	X4       RRR4       \        \        4      ;_uu_ 4        \        V^ R7       RRR4       \        \        4      ;_uu_ 4        \        V^R7       RRR4       R#   + '       g   i     ELc; i  + '       g   i     EL%; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r  N)lworkr  r  r  r   )r   warnsDeprecationWarningr   r   r6  r7  )
rr   rs   r  r  r  r  q3r3q4r4s
   &         rT   
test_lworkTestQR.test_lwork  sR   	9-\\,--at$DA . \\,--&FB%b!,%b!, . \\,--_FB%b!,%b!, . \\,--_FB%b!,%b!, . :&&qN ' :&&qN '&3 .-- .-- .- .- '& '&&sG   F((F,:(G (GG& G9F)	,F=	 G	G#	&G6	9H
	r  rP   r  FTrR   c                   \        W4      p\        P                  ! W3VR 7      p\        WcR7      vrxp	\	        VP
                  W34       \	        VP                  V4       \	        VP
                  W34       \	        VP                  V4       \        V	4      V'       d   ^M^ 8X  g   Q hV'       d\   V	w  p
\	        V
P
                  V34       \	        V
P                  \        '       d   \        P                  M\        P                  4       \        VRVR7      vr\	        VP
                  W34       \	        VP                  V4       \	        W4       \        V	4      V'       d   ^M^ 8X  g   Q hV'       d\   V	w  p
\	        V
P
                  V34       \	        V
P                  \        '       d   \        P                  M\        P                  4       \        VRVR7      vrxp	\	        VP
                  W34       \	        VP                  V4       \	        VP
                  WR34       \	        VP                  V4       \        V	4      V'       d   ^M^ 8X  g   Q hV'       d\   V	w  p
\	        V
P
                  V34       \	        V
P                  \        '       d   \        P                  M\        P                  4       \        VRVR7      vw  rr\	        VP
                  W34       \	        VP                  V4       \	        VP
                  V34       \	        VP                  V4       \	        VP
                  WR34       \	        VP                  V4       \        V	4      V'       d   ^M^ 8X  g   Q hV'       d^   V	w  p
\	        V
P
                  V34       \	        V
P                  \        '       d   \        P                  M\        P                  4       R# R# )r   r  r  rL  r8  rawN)r  rJ   r1   r   r   r8   rR   r[   rB   int64int32)rr   r  rP   r  rR   r)  rs   r  r  otherr  r_rr  taus   &&&&&         rT   r  TestQR.test_shape_dtype  s   
 IHHaV5)!/uQWWqf%QWWe$QWWqf%QWWe$5z8a333BA1$'ii"((RXXFx8SYY'SYY&Q5z8a333BA1$'ii"((RXXF!*x@uQWWqf%QWWe$QWWqf%QWWe$5z8a333BA1$'ii"((RXXF "158 D
ASYY'SYY&SYY%SYY&QWWqf%QWWe$5z8a333BA1$'ii"((RXXF rV   c                   \        W4      p\        P                  ! W34      p\        V4      w  rV\	        V\        P
                  ! V4      4       \	        V\        P                  ! W34      4       \        VR R7      w  rVp\	        V\        P
                  ! V4      4       \	        V\        P                  ! W34      4       \	        V\        P                  ! V4      4       \        VRR7      w  p\	        V\        P                  ! W34      4       \        VRR7      w  rV\	        V\        P                  ! W34      4       \	        V\        P                  ! W234      4       \        VRR7      w  w  rp\	        V\        P                  ! W34      4       \	        V	\        P                  ! V34      4       \	        V\        P                  ! W234      4       R# )Tr  r  r9  r8  r  N)r  rJ   r   r   r   r  r2   )
rr   r  rP   r)  rs   r  r  r  r  r  s
   &&&       rT   r   TestQR.test_empty,  s@   IHHaV!u2;;q>*288QF+,Q&a2;;q>*288QF+,299Q<(_288QF+,!*%288QF+,288QF+,15)
ARXXqf-.RXXqd^,288QF+,rV   c                   \         P                  ! R4      p\         P                  ! R4      p\        W4      w  r4\        V\         P                  ! R4      4       \         P                  ! R4      p\         P                  ! R4      p\        W4      w  r4\        V\         P                  ! R4      4       \         P                  ! R4      p\         P                  ! R4      p\        W4      w  r4\        V\         P                  ! R4      4       R# )r   Nr   r   r   )rJ   r   r   r   )rr   rs   r  rR  r  s   &    rT   test_multiply_emptyTestQR.test_multiply_emptyF  s    HHVHHVA!BHHV,-HHVHHVA!BHHV,-HHVHHVA!BHHV,-rV   r8   c                   \         P                  P                  R R7      p\        V4      pVP	                  VR7      p\         P
                  ! V\         P                  4      '       d!   VRVP	                  VR7      ,          ,           pVP                  V4      p\        VRVR7      vw  rxrVP                  V8X  g   Q hVP                  V8X  g   Q hVP                  V38X  g   Q hVP                  V8X  g   Q hV	P                  WQ^,          38X  g   Q hV	P                  V8X  g   Q h\        V
4      V'       d   ^M^ 8X  g   Q hV'       dp   V
^ ,          pVP                  ^ ,          V^,          8X  g   Q h\        '       d"   VP                  \         P                  8X  g   Q h\         P                  '       g   Q h\        \         P                   ! V4      RV1R3,          V	4       V^ ,          ^ 8  d   VRRV13,          p\#        R
V3RR	7      ^ ,          pV! Wx4      w  p pV'       d   \        W,          VRX3,          4       M\        W,          V4       VP$                  ^ 8w  dY   \        \         P&                  ! VP(                  4      V,          \         P*                  ! VP                  ^,          4      4       R# R# R# )90  seedr   rH   r  rL  Nr   r  r  orgqr)rJ   rK   r[  r  normal
issubdtypecomplexfloatingrO   r   r8   rR   r[   rB   r  r  r   triur(   r   rM   rN   r>   )rr   r8   rR   r  r_   r  rs   q_rawr  r  r  r"  	or_un_gqrr  _s   &&&&           rT   test_rawTestQR.test_rawV  s$    ii###/JJJEJ"== 2 233B///AHHUO"$QUX"Fa{{e###{{e###yyQD   yyE!!!wwAQx=(((ww%5z8a3338D::a=E!H,,,-6Y4::)DDBHHHDD!"''%.!Q"7;8a<!RaR%LE(eX[QRSTI+GAq!)!%1d7<)!%3vv{)"''!##,*:BFF1771:<NO  rV   c                   ^p\         P                  ! V\         P                  R7      p\         P                  ! V^V,          .4      p\	        VRR7      ^ ,          ^ ,          pVP
                  P                  pVP                  WUV,          38X  g   Q hVP                  P                  '       g   Q hVP                  P                  RJ g   Q h\	        VRR7      ^ ,          ^ ,          pVP                  W,          V,          WUV,          38X  g   Q hVP                  P                  RJ g   Q hVP                  P                  RJ g   Q hR# )rl   r   r  r9  FN)rJ   r>   r3   rn  r   rR   itemsizestridesro  f_contiguousc_contiguous)rr   rP   rs   aar  r  qqs   &      rT   test_raw_flagsTestQR.test_raw_flags  s
    FF1BJJ'XXq!A#h qua #77##yyXz2222ww#####ww##u,,, "1%zzac(lHqjAAAAxx$$---ww##u,,,rV   c                |   \         P                  P                  R R7      pVP                  RR7      p\         P                  ! V\         P
                  4      '       d+   VRVP                  VP                  R7      ,          ,           pVP                  V4      p\        VRR7      w  rEV\         P                  \         P                  39   d   ^M^p\        WE,          W6R7       \        \         P                  ! VP                  4      V,          \         P                  ! VP                  ^,          4      VR7       R# )	r  r  r  rH   r8  r9  decimalN)i'  rk   )rJ   rK   r[  r  r  r  r8   rO   r   r3   r4   r   rM   rN   r>   )rr   rR   r_   rs   r  r  r  s   &&     rT   test_smoke_economicTestQR.test_smoke_economic  s     ii###/JJJJ'== 2 233B111AHHUO!*% R\\ ::!!!%<!"''!##,"2BFF1771:4FPWXrV   r:  re  rf  rg  c                   \         P                  P                  ^*R7      pVR8X  dU   . VRR OVR,          NVR,          N5pVP                  VR7      P	                  V4      p\         P
                  ! VRR4      pM!VP                  VR7      P	                  V4      p\         P                  ! V4      p	\        V3RVRV/VB p
VP                  RR4      pT;'       d,    \        V4      ^8H  ;'       d    VR8H  ;'       d	    V\        JpVR	8X  Ed   V
vw  rrV	P                  ^8  d   \        V	P                  ^ ,          4       F  p\        RVR,          3RR7      ^ ,          pV! VVR
R\         P                  ! VRR 4      13,          VVR
3,          4      w  p pV'       dG   V^ ,          p\!        VVVR
R
3,          ,          V	VR
R
3,          R
VVR
3,          3,          RR7       K  \!        VVVR
R
3,          ,          V	VR
R
3,          RR7       K  	  M\        RV3RR7      ^ ,          pV! VR
R\         P                  ! VRR 4      13,          V4      w  p pV'       d)   V^ ,          p\!        VV,          V	R
V3,          RR7       M\!        VV,          V	RR7       V\         P"                  ! W4      8X  g   Q hR# VR8X  do   \        V	RVR7      vppp\!        V
^ ,          VRR7       V'       d   \!        V
R,          V^ ,          4       V\         P"                  ! W^ ,          4      8X  g   Q hR# VR8X  g	   VR8X  Ed   V'       d   V
R,          pV	P                  ^8  du   \        V	P                  ^ ,          4       FS  p\!        V
^ ,          VR
R
3,          V
^,          VR
R
3,          ,          V	V,          R
VVR
3,          3,          RR7       KU  	  MP\!        V
^ ,          V
^,          ,          V	R
V3,          RR7       M#\!        V
^ ,          V
^,          ,          V	RR7       T\         P"                  ! YVR8X  d   ^ M^,          4      8X  g   Q hR# R# )r   r  rg  Nr  r:  r  ri  Fr  r   r  r  r  rB  r  r.   rL  r8  r   r   r  )r   r   r   )rJ   rK   r[  r  rO   swapaxesry   r   getr[   rZ   rh  r   r8   r(   r  r   shares_memory)rr   rR   overwrite_kwr:  r  re  r8   r_   rs   rp  outri  r   r  r  r  r   r  r  r  r"  r_refs   &&&&&&&               rT   test_overwrite_argsTestQR.test_overwrite_args  s    ii###,C< 8eCRj7%)7U2Y7E


&--e4AAr2&A


&--e4A
AAALA"&&}e<  Z1_ c\  	 	 5=&)#LU!zzA~u{{1~.A 0"U7^$5[!!I (a4GRVVE"#J5G4G.G(H#aQRd)TGAq!$Qx'!Q'
NE!Q'N1d1a4j=,IPU (AaAgJaAgUS / -Z%UVWX	#E!-@bffU23Z.@-@*@$A3G1a 8D#AE5D>F#AE5u=""2"21"<<<<S[!%fxHAuuCFE6Bq2""2"21!f"====Z46> 2w::>"5;;q>2'F1a7Oc!fQ1Wo=uQx4PQSTPT:?V!& 3 $CFSVOU1d7^%PAQUC ""2"2DJ.qA6#   % $2rV   r   Nr  r  r  )r  rY  r[  r  )rl   r   )r  r  r8  r.   ))rZ  rl   )rl   rZ  )rk   rZ  rl   )rk   rl   rZ  )Hr   r   r   r   rv   r  r  r  r#  r&  r*  r.  r2  r5  r=  rA  rI  rN  rS  rW  r\  r`  rd  rg  rj  rm  rp  rs  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  r2  r  r   r   r   rJ  r  r   r  r  r  r  rE   rZ   r   r  r   r   r   s   @rT   r  r    s    ,))	)--,	),
)&
)))))&)&))))),)))444	)--0
-
--	0--- *-$0-0
-
--,> [[S),[[S),[[Z%7[[Wf-/G . 8 - -/Gb [[Z)AB- C-2.  [[Z$7[[W&NO[[Wf-%P . P 8%PN-( [[Wf-Y .Y  [[WsEl3[[V%EF[[Z$7[[WsCj1[[W&LMT N 2 8 G 4 TrV   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]P$                  P'                  R. RO4      ]P$                  P'                  R. RO4      ]P$                  P'                  R]4      R 4       4       4       t]P$                  P'                  R. RO4      R 4       tRtV tR# )TestRQi	  c                    . RO. RO. RO.p\        V4      w  r#\        W3P                  ,          \        ^4      4       \        W#,          V4       R# r   r   r   rN   r>   rr   rs   r  r  s   &   rT   rv   TestRQ.test_simple	  s9    	9-!u!!cc'3q62!!%+rV   c                f    . RO. RO. RO.p\        V4      w  r#\        VRR7      p\        W$4       R# )r  r  r9  Nr  r  r  )r   r   )rr   rs   r  r  r  s   &    rT   test_rTestRQ.test_r		  s,    	9-!u_!!(rV   c                   \         P                  P                  R 4      p^p\        ^4       FY  pVP                  W".4      p\	        V4      w  rV\        WfP                  ,          \        V4      4       \        WV,          V4       K[  	  R# r  rJ   rK   r.  r   r   r   rN   r>   rr   r_   rP   r)  rs   r  r  s   &      rT   r  TestRQ.test_random	  sd    ii##D)qA

A6"Aa5DA%a##gs1v6%aeQ/	 rV   c                    . RO. RO.p\        V4      w  r#\        VP                  V,          \        ^4      4       \        W#,          V4       R# r)  r  r   s   &   rT   r*  TestRQ.test_simple_trap	  r,  rV   c                    ^^.^^	.^^..p\        V4      w  r#\        VP                  V,          \        ^4      4       \        W#,          V4       R# r1  r  r   s   &   rT   r2  TestRQ.test_simple_tall	  sG    VaVaV$!u!!##'3q62!!%+rV   c                    . RO. RO.p\        V4      w  r#\        W3P                  ,          \        ^4      4       \        W#,          V4       R# )r  NrZ  r  r  r   s   &   rT   r\  TestRQ.test_simple_fat$	  s7    	"!u!!cc'3q62!!%+rV   c                    . RO. RO. RO.p\        V4      w  r#\        W3P                  4       P                  ,          \	        ^4      4       \        W#,          V4       R# rv  )r   r   rM   rN   r>   r   s   &   rT   r~   TestRQ.test_simple_complex*	  s?    <3!u!!ffhjj.#a&9!!%+rV   c                   \         P                  P                  R 4      p^p^dp\        ^4       FY  pVP                  W#.4      p\	        V4      w  rg\        WwP                  ,          \        V4      4       \        Wg,          V4       K[  	  R# r  r&  rr   r_   r  rP   r)  rs   r  r  s   &       rT   r  TestRQ.test_random_tall0	  i    ii##D)qA

A6"Aa5DA%a##gs1v6%aeQ/	 rV   c                   \         P                  P                  R 4      p^dp^p\        ^4       FY  pVP                  W#.4      p\	        V4      w  rg\        WwP                  ,          \        V4      4       \        Wg,          V4       K[  	  R# r  r&  r2  s   &       rT   r  TestRQ.test_random_trap:	  r4  rV   c                |   \         P                  P                  R 4      p^dp^p\        ^4       F  pVP                  W#.4      p\	        VRR7      w  rg\        WwP                  ,          \        V4      4       \        Wg,          V4       \        VP                  W#34       \        VP                  W"34       K  	  R# r  )
rJ   rK   r.  r   r   r   rN   r>   r   r8   r2  s   &       rT   test_random_trap_economic TestRQ.test_random_trap_economicD	  s    ii##D)qA

A6"Aaj)DA%a##gs1v6%aeQ/1&)1&) rV   c                p   \         P                  P                  R 4      p^p\        ^4       F  pVP                  W".4      RVP                  W".4      ,          ,           p\	        V4      w  rV\        WfP                  4       P                  ,          \        V4      4       \        WV,          V4       K  	  R# r  )	rJ   rK   r.  r   r   r   rM   rN   r>   r'  s   &      rT   r  TestRQ.test_random_complexP	  s    ii##D)qA

A6"R

A6(:%::Aa5DA%a&&(**nc!f=%aeQ/	 rV   c                   \         P                  P                  R 4      p^dp^p\        ^4       F  pVP                  W#.4      RVP                  W#.4      ,          ,           p\	        VRR7      w  rg\        WwP                  4       P                  ,          \        V4      4       \        Wg,          V4       \        VP                  W#34       \        VP                  W"34       K  	  R# )r-  rH   r8  r9  N)rJ   rK   r.  r   r   r   rM   rN   r>   r   r8   r2  s   &       rT   test_random_complex_economic#TestRQ.test_random_complex_economicY	  s    ii##D)qA

A6"R

A6(:%::Aaj)DA%a&&(**nc!f=%aeQ/1&)1&) rV   c                    . RO. RO. RO.p\        VRR7      w  r#\        W3P                  ,          \        ^4      4       \        W#,          V4       R# r  r  r   s   &   rT   r2  TestRQ.test_check_finitee	  s<    	9-!%(!!cc'3q62!!%+rV   r  rP   rR   c                b   \        W4      p\        P                  ! W3VR 7      p\        V4      w  rg\	        VP
                  W"34       \	        VP
                  W34       \	        VP                  V4       \	        VP                  V4       \        VRR7      p\	        VP
                  W34       \	        VP                  V4       \        VRR7      w  rg\	        VP
                  W34       \	        VP                  V4       \	        VP
                  WB34       \	        VP                  V4       R# )r   r  r9  r8  N)r  rJ   r1   r   r   r8   rR   )rr   r  rP   rR   r)  rs   r  r  s   &&&&    rT   r  TestRQ.test_shape_dtypek	  s     IHHaV5)!uQWWqf%QWWqf%QWWe$QWWe$qsOQWWqf%QWWe$!*%QWWqf%QWWe$QWWqf%QWWe$rV   c                   \        W4      p\        P                  ! W34      p\        V4      w  rV\	        V\        P                  ! W34      4       \	        V\        P
                  ! V4      4       \        VR R7      p\	        V\        P                  ! W34      4       \        VRR7      w  rV\	        V\        P                  ! W34      4       \	        V\        P                  ! W234      4       R# )r  r9  r8  N)r  rJ   r   r   r   r  )rr   r  rP   r)  rs   r  r  s   &&&    rT   r   TestRQ.test_empty	  s    IHHaV!u288QF+,2;;q>*qsO288QF+,!*%288QF+,288QF+,rV   r   Nr  r  r  )r   r   r   r   rv   r#  r  r*  r2  r\  r~   r  r  r8  r  r=  r2  r   r   r   rJ  r  r   r   r   r   s   @rT   r  r  	  s     ,)0,,,,00
*0
*, [[S),[[S),[[Wf-% . - -%( [[Z)AB- C-rV   r  c                     a  ] tR tRt o R tR t]P                  P                  RR]	P                  ! ^4      ) R]	P                  ! ^4      R.3R]	P                  ! ^4      R]	P                  ! ^4      ) R.3RRR]	P                  ! ^4      ]	P                  ! ^4      ) .3R	]	P                  ! ^4      ]	P                  ! ^4      ) RR.3R
 ]	P                  ! ^4      R]	P                  ! ^4      ) R.3.4      R 4       tR tR t]P                  P                  R]]]	P                   ]]	P$                  .4      R 4       t]P                  P                  RRR	.4      ]P                  P                  RRR.4      ]P                  P                  R]	P                   ]	P(                  ]	P$                  ]	P*                  .4      R 4       4       4       t]P                  P                  RRR.4      ]P                  P                  R]	P                   ]	P(                  ]	P$                  ]	P*                  .4      R 4       4       tRtV tR# )	TestSchuri	  c                   \        W2,          VP                  4       P                  ,          WVR R7       \        W3P                  4       P                  ,          \        P                  ! \        V4      4      ,
          ^ ^ VRR7       R# )z&Schur decomposition does not match 'a'r   zu is not unitaryN)r   rM   rN   rJ   r>   r[   )rr   rs   tr  r   r   s   &&&&&&rT   check_schurTestSchur.check_schur	  sW    

*At H	J 	FFHJJA7 2	4rV   c           	        . RO. RO. RO.p\        V4      w  r#V P                  WVRRR7       \        VR4      w  rE\        \        P                  ! \        \        V4      4      4      ;'       d)    \        P                  ! \        \        V4      4      4      4       V P                  WVRRR7       \        WE4      w  rgV P                  WVRRR7       R# )	r  rA  +<r   r   r   Nr     rl   r  
   rl   ro   )r   rI  r   rJ   rO  r5   r7   r   )rr   rs   rH  rP  tczctc2zc2s   &       rT   rv   TestSchur.test_simple	  s    J/Qxqu59q)$uYr]+,MMim8L1MNU;2?5u=rV   zsort, expected_diaglhprX   rhpiucoucc                    V R 8  # )r   r   )r1  s   &rT   <lambda>TestSchur.<lambda>	  s    AHrV   c                    . RO. R	O. R
O. RO.p\        W1R7      w  rEpV P                  W4VRRR7       \        \        P                  ! V4      VRR7       \        ^V4       R# )r@  r9   rA  rL  rM  r  r   Nr@  r   r  r  g      g      r  r  r;        @      g      @rd  r@  r        @)r   rI  r   rJ   r-   r   )rr   r9   expected_diagrs   rH  r  sdims   &&&    rT   	test_sortTestSchur.test_sort	  s\     "! 1(
dqu59
M>QrV   c                ~    . RO. RO. RO. RO.p\        \        \        VRR7       \        \        \        V^R7       R# )r@  unsupportedr_  Nra  rb  rc  rf  )r6  r7  r   )rr   rs   s   & rT   test_sort_errorsTestSchur.test_sort_errors	  s3    "! 	j%?j%3rV   c                    . RO. RO. RO.p\        VRR7      w  r#\        W2,          VP                  4       P                  ,          V4       R# )r  Fr   NrN  r  rP  )r   r   rM   rN   )rr   rs   rH  rP  s   &   rT   r2  TestSchur.test_check_finite	  s7    J/QU+!!%!&&(**"4a8rV   r   c                   \         P                  ! RVR7      p\        V4      w  r4\        \         P                  ! ^VR7      4      w  rV\	        V\         P                  ! R4      4       \	        V\         P                  ! R4      4       VP
                  VP
                  8X  g   Q hVP
                  VP
                  8X  g   Q h\        VRR7      w  r4p\	        V\         P                  ! R4      4       \	        V\         P                  ! R4      4       \        V^ 4       VP
                  VP
                  8X  g   Q hVP
                  VP
                  8X  g   Q hR# )r   r   rW  r_  Nr   )rJ   r   r   r>   r   rR   r   )rr   r   rs   rH  rP  t0z0ri  s   &&      rT   r   TestSchur.test_empty	  s    HHV2&Qxrvvar*+288F+,288F+,ww"(("""ww"(("""15)
d288F+,288F+,T1ww"(("""ww"(("""rV   r9   outputr  r   rR   c                    \         P                  ! R R.^R ..4      p\        VP                  V4      WR7      R,          pVR8X  d
   V^ 8X  g   Q hV^8X  g   Q hR# R# )皙?r9   rv  rY  Nr   r   )rJ   r;   r   rO   )rr   r9   rv  rR   rS   ri  s   &&&&  rT   test_gh_13137_sort_str TestSchur.test_gh_13137_sort_str	  s]      JJb	As8,- QXXe_4?C EMtqy88tqy88yyrV   c                .  a \         P                  ! R R.^R ..4      pVR8H  ;'       d$    V\         P                  \         P                  09   oRV3R llp\	        VP                  V4      WAR7      R,          pS'       d
   V^8X  g   Q hV^8X  g   Q hR# R# )rx  r  Nc                   < S'       dQ   \         P                  ! V 4      '       d   Q hVe   \         P                  ! V4      '       g   Q hWR,          ,           pM&\         P                  ! V 4      '       g   Q hVe   Q hT pVP                  R8  # )NrH   re  )rJ   iscomplexobjisrealr   )r1  r  rP  all_reals   && rT   r9   1TestSchur.test_gh_13137_sort_custom.<locals>.sort
  so    ??1----}155"Hq))))y y66E>!rV   ry  r   r  r   )rJ   r;   r3   r   r   rO   )rr   rv  rR   rS   r9   ri  r  s   &&&   @rT   test_gh_13137_sort_custom#TestSchur.test_gh_13137_sort_custom	  s     JJb	As8,-6>GGe

BJJ/G&G		" QXXe_4?C$tqy33$!)33)yrV   r   N      )r   r   r   r   rI  rv   r   r   r   rJ   r6   rj  rn  r2  rZ   r   r3   r   r4   r   r   r   rz  r  r   r   r   s   @rT   rF  rF  	  s    4> [[
2771:+tRWWQZ5	6
"''!*cBGGAJ;5	6
$RWWQZ"''!*5	6
"''!*rwwqzk45	6
rwwqz3TB	C		E

49
 [[TC

GR\\#RS# T#  [[VeU^4[[X	':;[[Wrzz2::')||R]]'D E9E < 59$ [[X	':;[[Wrzz2::')||R]]'D E4E <4rV   rF  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
]]]]].4      R 4       tRtV tR# )TestHessenbergi
  c                    . RO. RO. RO.p. RO. RO. R	O.p\        V^R7      w  r4\        VP                  V,          V,          V4       \        W2^R7       R# )
   calc_qr  Nikiif     r  ir"  g     bgsE@g㥛 cg(m̀gkwc@gfjWr   g&S?g,eX@r   r   rN   rr   rs   h1rc   r  s   &    rT   rv   TestHessenberg.test_simple
  sT     ..!# !A&!!##'A+q1!!3rV   c                    . RO. RO. RO.p\        V^R7      w  r#\        VP                  4       P                  V,          V,          V4       R# )r  r  Nr  )r  y             f@r  )y             ;r"  r  )r   r   rM   rN   rr   rs   rc   r  s   &   rT   r~   "TestHessenberg.test_simple_complex 
  s?     !A&!!&&(**q.1"4a8rV   c                    . RO. RO. RO. RO. RO. RO. R	O.p\        V^R7      w  r#\        VP                  V,          V,          V4       R# )
ri   r  N)ri   rk   rl   rZ  rn   ro   r{  )r   rk   rl   rZ  ro   r{  rk   )r   rk   rk   rl   r   rl   rk   )r   r   rk   r  r   r   rk   )r   rl   ri   rk   r   ri   rk   )r   ri   rk   rl   r   ri   r   )r   r   r   r   r   ri   rk   r  r  s   &   rT   test_simple2TestHessenberg.test_simple2'
  sD    """""""$ !A&!!##'A+q1rV   c                    \         P                  ! ^4      p^VR&   \        V^R7      w  r#\        VP                  V,          V,          V4       R# )rl   r  N)r   r   )rJ   r>   r   r   rN   r  s   &   rT   test_simple3TestHessenberg.test_simple32
  s<    FF1I%!A&!!##'A+q1rV   c                    \         P                  P                  R 4      p^p\        ^4       FH  pVP                  W".4      p\	        V^R7      w  rV\        VP                  V,          V,          V4       KJ  	  R# )r-  r  N)rJ   rK   r.  r   r   r   rN   rr   r_   rP   r)  rs   rc   r  s   &      rT   r  TestHessenberg.test_random8
  s]    ii##D)qA

A6"Aa*DA%accAgk15 rV   c                N   \         P                  P                  R 4      p^p\        ^4       Ft  pVP                  W".4      RVP                  W".4      ,          ,           p\	        V^R7      w  rV\        VP                  4       P                  V,          V,          V4       Kv  	  R# )r-  rH   r  N)rJ   rK   r.  r   r   r   rM   rN   r  s   &      rT   r  "TestHessenberg.test_random_complex@
  sy    ii##D)qA

A6"R

A6(:%::Aa*DA%affhjj1nq&8!< rV   c                    . RO. RO. RO.p. RO. R	O. R
O.p\        V^RR7      w  r4\        VP                  V,          V,          V4       \        W2^R7       R# )r  F)r  r   r  Nr  r  r  r  r  r  r  r  s   &    rT   r2   TestHessenberg.test_check_finiteH
  sV     ..!# !AE:!!##'A+q1!!3rV   c                   ^^.^^..p\        V^R7      w  r#\        V\        P                  ! ^4      4       \        W!4       RR.RR..p\        V^R7      w  rV\        V\        P                  ! ^4      4       \        WT4       R# )rk   r  Ny       @      r   y      @      @y      (@       )r   r   rJ   r>   )rr   rs   rc   r  r   h2r  s   &      rT   test_2x2TestHessenberg.test_2x2S
  sv    VaW!A&!!RVVAY/!!'D\D%=)Aa(!"bffQi0!"(rV   r   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\        VRR7      w  r4\        VRR7      w  rVVP                  R8X  g   Q hVP                  VP                  8X  g   Q hVP                  R8X  g   Q hVP                  VP                  8X  g   Q hR# )r   r   Tr  Nr   )rJ   r   r   r8   rR   r>   )rr   r   rs   rc   r  h3r  s   &&     rT   r   TestHessenberg.test_empty_
  s    HHV2&qMww&   ww*RVVAR%89?????!D)Ad+ww&   ww"(("""ww&   ww"(("""rV   r   N)r   r   r   r   rv   r~   r  r  r  r  r2  r  r   r   r   rZ   r   r3   r   r4   r   r   r   r   s   @rT   r  r  
  s^     	49	226=	4
) [[TC)#LM# N#rV   r  zBuild Dependenciesblasnameversionc                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )TestQZit
  c                ~   \         P                  P                  R 4      p^pVP                  W".4      P                  \        4      pVP                  W".4      P                  \        4      p\        W44      w  rVrx\        Wu,          VP                  ,          V^R7       \        Wv,          VP                  ,          V^R7       \        WwP                  ,          \        V4      ^R7       \        WP                  ,          \        V4      ^R7       \        \         P                  ! \        V4      ^ 8  4      4       R# )r  r  N)rJ   rK   r.  rO   r3   r   r   rN   r>   r   r   r-   	rr   r_   rP   rS   r   AABBQr  s	   &        rT   test_qz_singleTestQZ.test_qz_singleu
  s    ii##E*JJv%%g.JJv%%g.!x!!&133,1=!!&133,1=!!cc'3q61=!!cc'3q61=tBx1}%&rV   c                "   \         P                  P                  R 4      p^pVP                  W".4      pVP                  W".4      p\        W44      w  rVrx\	        Wu,          VP
                  ,          V4       \	        Wv,          VP
                  ,          V4       \	        WwP
                  ,          \        V4      4       \	        WP
                  ,          \        V4      4       \        \         P                  ! \        V4      ^ 8  4      4       R# )r  N
rJ   rK   r.  r   r   rN   r>   r   r   r-   r  s	   &        rT   test_qz_doubleTestQZ.test_qz_double
  s    ii##E*JJvJJv!x!!&133,2!!&133,2!!cc'3q62!!cc'3q62tBx1}%&rV   c                t   \         P                  P                  R 4      p^pVP                  W".4      RVP                  W".4      ,          ,           pVP                  W".4      RVP                  W".4      ,          ,           p\        W44      w  rVrx\	        Wu,          VP                  4       P                  ,          V4       \	        Wv,          VP                  4       P                  ,          V4       \	        WwP                  4       P                  ,          \        V4      4       \	        WP                  4       P                  ,          \        V4      4       \        \         P                  ! \        V4      ^ 8  4      4       \        \         P                  ! \        V4      P                  ^ 8H  4      4       R# )r  rH   N)rJ   rK   r.  r   r   rM   rN   r>   r   r   r-   r   r  s	   &        rT   test_qz_complexTestQZ.test_qz_complex
  s   ii##E*JJvCJJv$6!66JJvCJJv$6!66!x!!&1668::"5q9!!&1668::"5q9!!ffhjj.#a&9!!ffhjj.#a&9tBx1}%&tBx}})*+rV   c                   \         P                  P                  R 4      p^pVP                  W".4      RVP                  W".4      ,          ,           P                  \        4      pVP                  W".4      RVP                  W".4      ,          ,           P                  \        4      p\        W44      w  rVrx\        Wu,          VP                  4       P                  ,          V^R7       \        Wv,          VP                  4       P                  ,          V^R7       \        WwP                  4       P                  ,          \        V4      ^R7       \        WP                  4       P                  ,          \        V4      ^R7       \        \         P                  ! \        V4      ^ 8  4      4       \        \         P                  ! \        V4      P                  ^ 8H  4      4       R# )r  rH   r  N)rJ   rK   r.  rO   r4   r   r   rM   rN   r>   r   r   r-   r   r  s	   &        rT   test_qz_complex64TestQZ.test_qz_complex64
  s1   ii##E*ZZ"SZZ%7"77??	JZZ"SZZ%7"77??	J!x!!&1668::"5q!D!!&1668::"5q!D!!ffhjj.#a&!D!!ffhjj.#a&!DtBx1}%&tBx}})*+rV   c                   \         P                  P                  R 4      p^pVP                  W".4      pVP                  W".4      p\        W4RR7      w  rVrxWu,          VP	                  4       P
                  ,          p	\        V	P                  V4       \        V	P                  ^ 4       Wv,          VP	                  4       P
                  ,          p
\        V
P                  V4       \        V
P                  ^ 4       \        WwP	                  4       P
                  ,          \        V4      4       \        WP	                  4       P
                  ,          \        V4      4       \        \         P                  ! \        V4      ^ 8  4      4       R# )r  r   )rv  N)rJ   rK   r.  r   rM   rN   r   r  r   r>   r   r   r-   )rr   r_   rP   rS   r   r  r  r  r  r
  bbs   &          rT   test_qz_double_complexTestQZ.test_qz_double_complex
  s    ii##E*JJvJJv!y1Vaffhjj !"''1-!"''1-Vaffhjj !"''1-!"''1-!!ffhjj.#a&9!!ffhjj.#a&9tBx1}%&rV   c                    \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! . RO. R	O. R
O. RO.4      p\        \        \        WR R7       R# )333333@c                     V^ 8H  # r   r   )araibetas   &&&rT   r\  ,TestQZ.test_qz_double_sort.<locals>.<lambda>
  s    bAgrV   r_  N)r        )@     @Ag      @333333@     5@g     Gg      @)r  ro       Erg  )皙@rd        Grd  )r  r  r  r  )r  r   g      r  )r  rF  re  r  )rm  r   re  r@  )	rJ   r,   r6  r7  r   r   r   rN   r   )rr   rS   r   r  r  r  r  ri  s   &       rT   test_qz_double_sortTestQZ.test_qz_double_sort
  sX     HH--,,. /
 HH++++- .
 	j"a1MNrV   c                &   \         P                  P                  R 4      p^pVP                  W".4      pVP                  W".4      p\        W4RR7      w  rVrx\	        Wu,          VP
                  ,          V4       \	        Wv,          VP
                  ,          V4       \	        WwP
                  ,          \        V4      4       \	        WP
                  ,          \        V4      4       \        \         P                  ! \        V4      ^ 8  4      4       R# )r  Fr   Nr  r  s	   &        rT   r2  TestQZ.test_check_finite  s    ii##E*JJvJJv!U3!!&133,2!!&133,2!!cc'3q62!!cc'3q62tBx1}%&rV   r   N)r   r   r   r   r  r  r  r  r  r  r2  r   r   r   s   @rT   r  r  t
  s/     
'
',,' 5FF
' 
'rV   r  c                   r   a  ] tR tRt o ]R 4       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V tR# )	TestOrdQZi'  c                R   \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! . RO. RO. RO. R	O.4      p\         P                  ! . R
O. RO. RO. RO.4      p\         P                  ! . RO. RO. RO. RO.4      p\         P                  ! . RO. RO. RO. RO.4      p\         P                  ! . RO. RO. RO. RO.4      p\         P                  ! ^4      p\         P                  ! ^ ^.4      p\         P                  ! ^^ .4      p	WWWV	.V n        W$WhV	.V n        R# )g5@N)y5     6y     J@     @Iy     @A     _@y      @      ?)yq=
ףpݿQy           By      /     @M@y      %      )y333333@      yC@1y      Q      )@y            )y      @@y,@fffffE@y     @@      Gy      3     @@)y      ?      y?333333?y              y              )y?333333y              y            @y333333	)y      ?        y333333@?y            y              )rH   y333333@y              y      @      )r  r  r  r  r  )r  r  r  rg  )r  g      :@r  rd  )ri   rk   ri   )ri   rl   rZ  )ri   rl   rl   )ri   rl   r  rZ  )r(  r  r   r   )r@  r@  rF  rI  )rI  r@  r  r   )r   r@  rC  rI  )rC  rG  rd  rG  )rI  rI  rF  r;  )r;  r  rd  rd  )r(  r  r@  rI  )rJ   r,   r>   r-   rS   r   )
clsA1B1A2B2A3B3A4B4A5s
   &         rT   setup_classTestOrdQZ.setup_class(  s     XX $&%'( ) XXDDDDF G XX/...0 1
 XX}$$$& ' XX'''') * XX)''') * VVAYWWaV_ WWaV_$$rV   c                   \         P                  ! R R7      ;_uu_ 4        \        V P                  V P                  4       UUu. uF  w  r#\        W#VR7      NK  	  pppRRR4       \        X4      # u uppi   + '       g   i     L!; i)raiser   r_  N)rJ   r  ziprS   r   r    tuple)rr   r9   AiBirets   &&   rT   	qz_decompTestOrdQZ.qz_decomp_  s]    [[W%%:=dffdff:MN:M5d+:MCN &Sz O &%s   $A8A2
A82A88B	c
           	        \         P                  ! VP                  !  p
\        WP                  P                  4       ,          V
4       \        WP                  P                  4       ,          V
4       \        W,          W,          4       \        W,          W),          4       \        \         P                  ! VR4      \         P                  ! VP                  4      4       \        \         P                  ! VR4      \         P                  ! VP                  4      4       \        VP                  ^ ,          4       EF  pV^ 8  d   WV^,
          3,          ^ 8w  d   K#  WP                  ^ ,          ^,
          8  d   WK^,           V3,          ^ 8w  d   \        WKV^,           1W^,           13,          W[V^,           1W^,           13,          4      w  rV^ ,          P                  ^ 8  d   V^^ .,          pWkV^,            W{V^,            ,          pV^ ,          P                  ^ 8  d   V^^ .,          p\        W4       EK  Wk,          ^ 8X  d9   W{,          ^ 8X  d,   \        WKV3,          ^ 4       \        W[V3,          ^ 4       EKK  W{,          ^ 8X  d   \        W[V3,          ^ 4       EKo  \        WKV3,          W[V3,          ,          Wk,          W{,          ,          4       EK  	  \        V4      pRp\        VP                  ^ ,          4       FV  pV! \         P                  ! Wk,          .4      \         P                  ! W{,          .4      4      pV'       g   V'       d   Q hTpKX  	  R# )rk   TNr   r   )rJ   r>   r8   r   rN   rM   r   trilr1   r   r
   r   r   r   r*   r,   )rr   rS   r   r9   r  r  alphar  r  r  Idr   evalsr  tmpsortfunlastsortcursorts   &&&&&&&&&&        rT   checkTestOrdQZ.checkd  sZ   VVQWW!!cchhj."5!!cchhj."5!!&!%0!!&!%02772r?BHHRXX,>?2772r?BHHRXX,>?qwwqz"A 1ua!e8)88A;?"ra%(|q'8rAE'1U7"23R!a%q58H5IJ 8==1$!1a&MEa!enTAE]2q6;;?q!f+C)%58q=TW\ qD1- qD1-W\ qD1-'a4qD(958DG;KL/ #0 #4(qwwqz"Abhhz2BHHdgY4GHG ""{H #rV   c                    V P                  V4      p\        W P                  V P                  4       F  w  r4pV P                  ! WEV.VO5!   K  	  R # r  )r  r  rS   r   r   )rr   r9   r  retir  r  s   &&    rT   	check_allTestOrdQZ.check_all  s@    nnT"VVTVV4LDbJJrt+d+ 5rV   c                (    V P                  R 4       R# )rW  Nr  r  s   &rT   test_lhpTestOrdQZ.test_lhp      urV   c                (    V P                  R 4       R# )rX  Nr  r  s   &rT   test_rhpTestOrdQZ.test_rhp  r
  rV   c                (    V P                  R 4       R# )rY  Nr  r  s   &rT   test_iucTestOrdQZ.test_iuc  r
  rV   c                (    V P                  R 4       R# )rZ  Nr  r  s   &rT   test_oucTestOrdQZ.test_ouc  r
  rV   c                .    R  pV P                  V4       R# )c                     \         P                  ! V \        R 7      pV^ 8g  pRW#( &   W,          W,          ,          P                  ^ 8H  W#&   V# r   FrJ   
empty_likeboolr   r1  r  r  nonzeros   &&  rT   r9    TestOrdQZ.test_ref.<locals>.sort  D    --.CAvG!CMJqz1771<CLJrV   Nr  rr   r9   s   & rT   test_refTestOrdQZ.test_ref      	 	trV   c                .    R  pV P                  V4       R# )c                     \         P                  ! V \        R 7      pV^ 8g  pRW#( &   W,          W,          ,          P                  ^ 8g  W#&   V# r  r  r  s   &&  rT   r9    TestOrdQZ.test_cef.<locals>.sort  r  rV   Nr  r  s   & rT   test_cefTestOrdQZ.test_cef  r!  rV   c                   \        V P                  ^,          V P                  ^,          RR7      pV P                  ! V P                  ^,          V P                  ^,          R.VO5!   \        V P                  ^,          V P                  ^,          RR7      pV P                  ! V P                  ^,          V P                  ^,          R.VO5!   R# )ri   rW  r_  N)r    rS   r   r   )rr   r  s   & rT   test_diff_input_typesTestOrdQZ.test_diff_input_types  s    DFF1Itvvayu5

466!9dffQi55DFF1Itvvayu5

466!9dffQi55rV   c                   \         P                  ! ^4      p\         P                  ! RR.4      pRR	^.3R^R	.3RR	^.3R^R	.3.p\         P                  ! ^4      p\         P                  ! R
R.4      pRRR.3RRR.3RRR.3RRR.3.p\         P                  ! ^4      p\         P                  ! ^^ .4      pRR\         P                  .3RR\         P                  .3R\         P                  R.3.p	\         P                  ! ^4      p
\         P                  ! R^ .4      pRR	\         P                  .3RR	\         P                  .3R\         P                  R	.3.p\         P                  ! ^ ^.4      p\         P                  ! ^ R.4      pR^\         P                  .3R^\         P                  .3.pWWzV.pW%WV.pW6WV.p\        VVV4       F  w  pppV F  w  pp\        VVVR7      w   ppp pV^ 8H  pV^ 8H  p\         P                  ! V4      p\         P                  VVV,          &   \         P                  VV( V,          &   VV( ,          VV( ,          ,          VV( &   \        VV4       K  	  K  	  R# )rk   rX   rW  rX  rY  rZ  r_  Nr   r  y             ?y      ?      ?yٿɿ      ?      )	rJ   r>   r-   r   r  r  r    r  r   )rr   r  r  	expected1r  r  	expected2r  r  	expected3r  r  	expected4r  B5	expected5rS   r   expectedr  r  	expectedisortstrexpected_eigvalsr  r  r  azerobzeror1  s   &                             rT   test_sort_explicitTestOrdQZ.test_sort_explicit  s    VVAYWWb#YdAY'aY'dAY'aY')	 VVAYWWgz*+k>:;nk:;k>:;nk:;=	
 VVAYWWaV_c266]+c266]+bffc]+-	 VVAYWWb!WdBFF^,dBFF^,bffd^,.	 WWaV_WWaXa[)a[)+	 RR RR )	J!$Q8!4BI-6))*/BW*E'1eT1a!MM%(#%66%%- $&FF5&5.!!5&M$v,65&	 0!4 .7 "5rV   r   N)r   r   r   r   classmethodr  r  r   r  r  r  r  r  r  r%  r(  r8  r   r   r   s   @rT   r  r  '  sU     4% 4%l
,\,		6-5 -5rV   r  c                      a  ] tR tRt o ]P
                  P                  ^4      R 4       t]P
                  P                  R 4       t	Rt
V tR# )TestOrdQZWorkspaceSizei  c                (   \         P                  P                  R 4      p^p\         P                  \         P                  3 FT  pVP                  W"34      P                  V4      pVP                  W"34      P                  V4      p\        WER RR7      pKV  	  \         P                  \         P                  3 FT  pVP                  W"34      P                  V4      pVP                  W"34      P                  V4      p\        WER RR7      pKV  	  R# )r  c                 
    W8  # r  r   r  r  s   &&rT   r\  7TestOrdQZWorkspaceSize.test_decompose.<locals>.<lambda>      U\rV   r  ry  c                 
    W8  # r  r   r?  s   &&rT   r\  r@    rA  rV   r   N)	rJ   rK   r.  r3   r   rO   r    r   r4   )rr   r_   r  ddtyperS   r   r  s   &      rT   test_decompose%TestOrdQZWorkspaceSize.test_decompose  s    ii##E*zz2::.F

A6"))&1A

A6"))&1Aa!A#%A	 / }}bll3F

A6"))&1A

A6"))&1Aa!A&(A 4rV   c                x   \         P                  P                  R 4      p^p\         P                  \         P                  \         P
                  \         P                  3 FV  pVP                  W"34      P                  V4      pVP                  W"34      P                  V4      p\        WERR7      w  rgrrKX  	  R# )r  rZ  r_  N)	rJ   rK   r.  r3   r   r   r4   rO   r    )rr   r_   r  rC  rS   r   SrN   r  r  UrP  s   &           rT   test_decompose_ouc)TestOrdQZWorkspaceSize.test_decompose_ouc  s    ii##E*zz2::r}}bllKF

A6"))&1A

A6"))&1A&+Au&=#A%q! LrV   r   N)r   r   r   r   r   r   	fail_slowrD  r  rI  r   r   r   s   @rT   r<  r<    sD     [[1( (" [[> >rV   r<  c                   &   a  ] tR tRt o R tRtV tR# )TestDatacopiedi  c                f  a ^ RI Hp \        ^ ^.^^..4      p\        V4      oVP	                  4       pVP                  4       p ! V3R lR4      p ! V3R lR4      pV! 4       pV! 4       pVR3SR3VR3VR3VR3VR33 F-  w  r\        V	4      p\        V! W4      V
\        V	4      R7       K/  	  R	# )
r   )_datacopiedc                   2   <a  ] tR tRt o RV3R lltRtV tR# )-TestDatacopied.test_datacopied.<locals>.Fake1i  Nc                   < S# r  r   )rr   rR   ry   rS   s   &&&rT   	__array__7TestDatacopied.test_datacopied.<locals>.Fake1.__array__  s    rV   r   )NN)r   r   r   r   rS  r   r   )r   rS   s   @rT   Fake1rQ    s      rV   rU  c                   2   < ] tR tRt Z P                  tRtR# )-TestDatacopied.test_datacopied.<locals>.Fake2i  r   N)r   r   r   r   __array_interface__r   r  s   rT   Fake2rW    s    "#"7"7rV   rY  FTr   N)scipy.linalg._decomprO  r@   r;   tolistry   r   repr)rr   rO  r  LM2rU  rY  F1F2itemstatusarrrS   s   &           @rT   test_datacopiedTestDatacopied.test_datacopied  s    4QFQF#$AJHHJVVX	 		8 	8 WWZ!UaY %[2u+E{DLD$-CS/!%d-DrV   r   N)r   r   r   r   rd  r   r   r   s   @rT   rM  rM    s     - -rV   rM  c                     \        R\        P                  R7      p \        P                  ! V P                  ^^d\
        R7      pVP                  R4      p\        VRR7       \        VP                  RR7       R# )z4Check linalg works with non-aligned memory (float32)i  r   offsetcountrR   Trl  NrQ  rQ  )	r2   rJ   uint8
frombufferdatar3   r5  r
   rN   rs   rP  s     rT   test_aligned_mem_floatro  *  sT     	s"((#A 	affQcAA			(AtrV   ppc64lezcrashes on ppc64lec                     \        R\        P                  R7      p \        P                  ! V P                  ^^d\
        R7      pVP                  R4      p\        VRR7       \        VP                  RR7       R# )z4Check linalg works with non-aligned memory (float64)i$  r   rg  Trl  Nrj  )	r2   rJ   rk  rl  rm  r   r5  r
   rN   rn  s     rT   test_aligned_memrr  7  sT    
 	s"((#A 	affQc?A			(AtrV   c                     \        R\        P                  R7      p \        P                  ! V P                  ^^d\
        R7      pVP                  R4      p\        VRR7       \        VP                  RR7       R# )z>Check that complex objects don't need to be completely alignediH  r   rg  Trl  Nrj  )	r1   rJ   rk  rl  rm  r   r5  r
   rN   rn  s     rT   test_aligned_mem_complexrt  F  sT     	d"((#A 	affQcAA			(AtrV   c                    \        V4      p\        \        V4      4       EFN  pVR ,          p\        WC,          \        P
                  4      '       g   K5  \        P                  ! WC,          P                  WC,          P                  P                  ,          ^,           \        P                  R7      p\        P                  ! VP                  ^WC,          P                  WC,          P                  R7      pVP                  WC,          P                  4      pWC,          VR&   WTV&   V ! V/ VB  \        WC,          P                  4      ^8  g   EK2  WC,          P                  WC&   V ! V/ VB  EKQ  	  R# )r   r   rg  .N)r  r   r[   rY   rJ   r=   r1   r   rR   r  rk  rl  rm  r5  r8   rN   )funcr  r_  r   rs   r
  s   &&&   rT   check_lapack_misalignedrw  T  s    :D3t9GadBJJ''!$))ADJJ$7$779JBrwwq		%&TZZ1BADJJ'BdBsGaD!v14::"tvva"6" rV   z0Ticket #1152, triggers a segfault in rare cases.)runr  c                     \         P                  ! ^
\        R7      p \         P                  ! ^d4      P	                  R	4      p\         P                  ! R\         P
                  R7      p\         P                  ! VP                  ^^d\        R7      pVP	                  R	4      p\         P                  ! ^
4      p\        V4      w  rE\        V3\        RR7      3\        V3\        RR7      3\        V3\        RR7      3\        V3\        RR7      3\        WE3V3\        RR7      3\        W#3\        RRR7      3\         V 3\        RR7      3\         V3\        RR7      3\         V3\        RR7      3\"        V3\        4       3\"        V3\        RR7      3\$        V 3\        RR7      3\&        V3\        RR7      3\(        V3\        RR7      3\*        V3\        RR7      3\,        V3\        RR7      33 F  w  rgp\/        WgV4       K  	  R# )
rQ  r   i N  rg  Trl  )rz  r|  Nrj  )rJ   r>   r   r2   r5  rk  rl  rm  r   r   r
   r\  r   r   r   r   r   r   r   r   r   r   r   rw  )	r  RrG  r   LUpivrv  r  r_  s	            rT   test_lapack_misalignedr}  f  s    	rA
		#x(A
		%rxx(A
affQc?A			(A
AlGB1$./qdDT23!t-.dt45	1~t'=>QFDTtDE1$./1$./1$./qdDF#qdDT23tTd34!t-.!t-.!t56QD$401!!V$ 	 F3%!rV   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V tR# )TestOverwritei  c                L    \        \        R.4       \        \        RR.4       R# rl   Nr  )r?   r
   r  s   &rT   test_eigTestOverwrite.test_eig  s    C&*C&&!12rV   c                L    \        \        R.4       \        \        RR.4       R# r  )r?   r   r  s   &rT   	test_eighTestOverwrite.test_eigh  s    D6(+D66"23rV   c                (    \        \        R.4       R# rl   NrY  )r?   r   r  s   &rT   r  TestOverwrite.test_eig_banded      J1rV   c                (    \        \        R.4       R# r  )r?   r   r  s   &rT   test_eigvalsTestOverwrite.test_eigvals      GfX.rV   c                (    \        \        R.4       R# r  )r?   r   r  s   &rT   test_eigvalshTestOverwrite.test_eigvalsh  s    Hvh/rV   c                (    \        \        R.4       R# r  )r?   r   r  s   &rT   r  !TestOverwrite.test_eigvals_banded  s    NVH5rV   c                (    \        \        R.4       R# r  )r?   r   r  s   &rT   test_hessenbergTestOverwrite.test_hessenberg  r  rV   c                (    \        \        R.4       R# r  )r?   r   r  s   &rT   test_lu_factorTestOverwrite.test_lu_factor  s    Ix0rV   c                ~   a \         P                  ! . RO. RO. RO.4      p\        V4      o\        V3R lR.4       R# )ri   c                    < \        SV 4      # r  )r   )r   xlus   &rT   r\  -TestOverwrite.test_lu_solve.<locals>.<lambda>  s    hsA&6rV   Nrj   r  )r{  r  r  )rl   )rJ   r,   r   r?   )rr   r1  r  s   & @rT   test_lu_solveTestOverwrite.test_lu_solve  s.    HHiI67l6?rV   c                (    \        \        R.4       R# r  )r?   r   r  s   &rT   test_luTestOverwrite.test_lu      B)rV   c                (    \        \        R.4       R# r  )r?   r   r  s   &rT   test_qrTestOverwrite.test_qr  r  rV   c                (    \        \        R.4       R# r  )r?   r   r  s   &rT   test_rqTestOverwrite.test_rq  r  rV   c                (    \        \        R.4       R# r  )r?   r   r  s   &rT   
test_schurTestOverwrite.test_schur  s    EF8,rV   c                b    \        R  R.\        P                  \        P                  .R7       R# )c                     \        V R 4      # )r   )r   rs   s   &rT   r\  2TestOverwrite.test_schur_complex.<locals>.<lambda>  s    eAy&9rV   )dtypesNr  )r?   rJ   r3   r   r  s   &rT   test_schur_complex TestOverwrite.test_schur_complex  s!    9F8$&JJ

#;	=rV   c                D    \        \        R.4       \        R R.4       R# )rl   c                     \        V R R7      # )r  r  )r   r  s   &rT   r\  (TestOverwrite.test_svd.<locals>.<lambda>  s    c!7&CrV   Nr  )r?   r   r  s   &rT   test_svdTestOverwrite.test_svd  s    C&*CfXNrV   c                (    \        \        R.4       R# r  )r?   r   r  s   &rT   test_svdvalsTestOverwrite.test_svdvals  r  rV   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   s   @rT   r  r    s\     342/0621@
***-=O/ /rV   r  c                    \         P                  ! V ^3\        R7      P                  V4      p\         P                  ! V4      P
                  pRV,          p\        V4      p\        VP                  V ^34       \        WfP                  4       VRR7       \        VP                  4      p\        VP                  R4       \        WfP                  4       VR7       V ^8  d   V'       g   \         P                  P                  ^4      pVP                  V ^4      VP                  ^V 4      ,          pVRVP                  V ^4      ,          VP                  ^V 4      ,          ,           pVP                  V4      p\        VRR7      p\        VP                  V ^34       \        VR	R7      p\        VP                  V ^34       R
# R
# R
# )rk   r   r^  gz]ʂ>r_  rB  -C6?MbP?rcondư>Nrk   ri   )rJ   r   r   rO   r`  ra  r   r   r8   r   meanrN   rK   r.  rL   )rP   rR   skip_bigXra  r   Yr_   s   &&&     rT   _check_orthr    sH   
Ae$++E2A
((5/

C
*CQA1a&!Avvxc7QSS	A&!Avvxc*1uXii##A&HHQNSXXa^+sxx1~%A66HHUO$QWWq!f%$QWWq%j) urV   z"test only on 64-bit, else too slowc                      Rp  \        V \        P                  RR7       R#   \         d   p\	        R4      ThRp?ii ; i)rQ  T)r  z.memory error perhaps caused by orth regressionNi )r  rJ   r   MemoryErrorAssertionError)rP   r  s     rT   test_orth_memory_efficiencyr    sA     	AArzzD1 <
	s   " >9>c                      \         P                  \         P                  \         P                  \         P                  .p . ROp\
        P                  ! W4       F  w  r#\        W24       K  	  R# )ri   Nri   rk   rl   rQ  r  )rJ   r3   r   r4   r   	itertoolsproductr  )r  r  r   rP   s       rT   	test_orthr    sD    jj"**bllBMMBFE""61A 2rV   r   c                     \         P                  ! RV R7      p\         P                  ! ^V R7      p\        V4      pVP                  \        V4      P                  8X  g   Q hVP
                  R8X  g   Q hR# r   r   Nr   )rJ   r   r>   r   rR   r8   )r   rs   r  oas   &   rT   test_orth_emptyr    sW    
r"A		B	aB88tBx~~%%%88vrV   c                   h  a  ] tR tRt o R t]P                  P                  R]]	]
P                  ]]
P                  .4      R 4       t]P                  P                  RRR.4      ]P                  P                  RRR.4      ]P                  P                  R	R
R.4      R 4       4       4       tRtV tR# )TestNullSpacei  c                T   \         P                  P                  ^4      p\         P                  \         P                  \         P
                  \         P                  .p. R	Op\        P                  ! W#4       EF+  w  rE\         P                  ! ^V3VR7      p\         P                  ! V4      P                  pRV,          p\        V4      p	\        V	P                  WU^,
          34       \        Wi,          ^ VR7       \        VP                   4      p	\        V	P                  R
4       \        VP                   V	,          ^ VR7       VP#                  ^V^,          ,           V4      p\        V4      p	\        V	P                  WU^,
          V^,          ,
          34       \        Wi,          ^ VR7       V^8  g   EKE  \         P                  P                  ^4      pVP%                  V^4      VP%                  ^V4      ,          pVRVP%                  V^4      ,          VP%                  ^V4      ,          ,           pVP'                  V4      p\        VRR7      p	\        V	P                  WU^,
          34       \        VRR7      p	\        V	P                  WU^,
          34       EK.  	  R# )ri   r   r^  rB  r  r  r  r  Nr  r  )rJ   rK   r.  r3   r   r4   r   r  r  r   r`  ra  r%   r   r8   r   rN   randnrL   rO   )
rr   r_   r  r  r   rP   r  ra  r   r  s
   &         rT   test_null_spaceTestNullSpace.test_null_space  s   ii##A&**bjj",,F"&&v5EBAb)A((2,""C*C1A1c(+AE13/133A&)ACC!GQS1		!ad(A&A1A1!eadl"34AE13/1uii++A.HHQNSXXa^3sxx1~-A>>HHRLq-QWWqa%j1q-QWWqa%j1; 6rV   r   c                    \         P                  ! RVR7      p\         P                  ! ^VR7      p\        V4      pVP                  R8X  g   Q hVP
                  \        V4      P
                  8X  g   Q hR# r  )rJ   r   r>   r%   r8   rR   )rr   r   rs   r  nsas   &&   rT   test_null_space_empty#TestNullSpace.test_null_space_empty!  sY    HHV2&VVAR myyF"""yyJrN00000rV   ri  TFr   r  r{  r  c                H   \         P                  P                  R 4      p^
pVP                  ^V^,          ,           V34      p\	        VP                  4       WVR7      p\        Wg,          ^ \         P                  ! VP                  4      P                  ^d,          R7       R# )l   'YeN )ri  r   r  rB  N)
rJ   rK   r[  standard_normalr%   ry   r   r`  rR   ra  )rr   ri  r   r  r_   rP   r  r  s   &&&&    rT   test_null_space_options%TestNullSpace.test_null_space_options*  sw     ii##$;<QT1.qvvx[%24qrxx'8'<'<S'@ArV   r   N)r   r   r   r   r  r   r   r   rZ   r   rJ   r3   r   r4   r  r  r   r   r   s   @rT   r  r    s     #2J [[TC

GR\\#RS1 T1 [[]T5M:[[^dE];[[_w.@AB B < ;BrV   r  c                  ~   \        ^\        4      p V R,          pV R,          p\        \        W4      \        P
                  R,          .^,          RR7       \        \        W!4      \        P
                  R,          .^,          RR7       W3 F?  p\        \        W34      \        P                  ! VP                  ^,          4      RR7       KA  	  \        P                  ! . RO. RO. RO. RO.4      pRp\        \        VR,          VR,          4      ^ ,          VRR7       \        \        VR,          VR,          4      ^ ,          VRR7       Rp\        \        VR,          VR^.3,          4      VRR7       \        \        VR^.3,          VR,          4      VRR7       R	p\        \        VR,          VR^.3,          4      VRR7       \        \        VR^.3,          VR,          4      VRR7       R
p\        \        VR,          VR,          4      V^ .RR7       \        \        \        V^ ,          V4       \        \        \        W3^ ,          4       \        \        \        VRR V4       \        P                  ! . RO. RO. RO. RO. RO.4      p\        P                  ! . RO. RO. RO. RO. RO.4      p\        P                  ! \        P
                  ^,          ^ ^ .4      p\        \        W4      VRR7       R.^ ..pR^ .^ ^..p\        \        WV4      RRR7       \        \        We4      RRR7       \        P                  ! R4      p\        P                  ! R4      p\        \        WV4      \        P                  ! R4      4       \        P                  ! R4      p\        P                  ! R4      p\        \        WV4      \        P                  ! R4      4       \        P                  ! R 4      p\        P                  ! R!4      p\        \        WV4      \        P                  ! R4      4       R# )"r  r   rF  rA  rB  g"	?r  r`  gL0?gĹ-?gyv?Nr   )r   :Nrl   N)r   :rl   NN)g4?gVRf?g8!@g6?)gN$ЗW?gJg~'@g3:]$)gvMg ۿgPT#ge,?)g΀?g+?gNG@gS<ʿ)r   rF  )r   :rk   NN)r   r  r   r  )r   ri   r   )r   r   ri   r  r  r+  r   r   r   r   r  )r"   r   r   r!   rJ   pir1   r8   r,   r6  r7  r   )HrS   r   r1  r2  rs   r   s          rT   test_subspace_anglesr  6  sA   EA	%A	%AOA)BEEBJ<!+;%HOA)BEEBJ<!+;%HV-rxx
/C"	$ 
 		U	W	X	V	X	YA
 !HOAeHah7:H OAeHah7:H  HOAeHaA3i8(OOAa!fIqx8(O HOAeHaA3i8(OOAa!fIqx8(O HOAeHah7(A  *oqtQ7*oqA$7*oq"vq9 	)	 	A
 	)	 	A
 xxq!Q(HOA)8%@
 A3A
!q!fAOA)2E:OA)2E: 	A
AOA)288D>:
A
AOA)288D>:
A
AOA)288D>:rV   c                   t   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V tR# )TestCDF2RDFi{  c                0    \         P                  ! R W4      # )z...ij,...jk->...ik)rJ   einsum)rr   rs   r   s   &&&rT   matmulTestCDF2RDF.matmul}  s    yy-q44rV   c                Z    \        V P                  W!4      V P                  W24      4       R # r  )r   r  )rr   rt   rb   r1  s   &&&&rT   assert_eig_validTestCDF2RDF.assert_eig_valid  s"    !KKKK	
rV   c                    \         P                  ! R4      p\         P                  ! ^ 4      \         P                  ! R4      r2\        W#4      w  rEV P                  WEV4       R# )r   Nr   )rJ   r   r&   r  rr   r  rt   rb   wrr   s   &     rT   test_single_array0x0real$TestCDF2RDF.test_single_array0x0real  sC    HHVxx{BHHV,1ba(rV   c                    \         P                  ! ^^.^R..4      p\         P                  P                  V4      w  r#\	        W#4      w  rEV P                  WEV4       R# )ri   Nr   rJ   r,   r/   r
   r&   r  r  s   &     rT   test_single_array2x2_real%TestCDF2RDF.test_single_array2x2_real  sL    HHq!fq"g&'yy}}Qba(rV   c                    \         P                  ! ^^.R^..4      p\         P                  P                  V4      w  r#\	        W#4      w  rEV P                  WEV4       R# )ri   Nr   r  r  s   &     rT   test_single_array2x2_complex(TestCDF2RDF.test_single_array2x2_complex  sL    HHq!fr1g&'yy}}Qba(rV   c                    \         P                  ! . RO. RO. RO.4      p\         P                  P                  V4      w  r#\	        W#4      w  rEV P                  WEV4       R# rh   r  r  s   &     rT   test_single_array3x3_real%TestCDF2RDF.test_single_array3x3_real  sF    HHiI67yy}}Qba(rV   c                    \         P                  ! . RO. RO. RO.4      p\         P                  P                  V4      w  r#\	        W#4      w  rEV P                  WEV4       R# ri   Nrj   )r   rZ  rn   )r   r  rZ  r  r  s   &     rT   test_single_array3x3_complex(TestCDF2RDF.test_single_array3x3_complex  sF    HHiJ78yy}}Qba(rV   c                   \         P                  P                  R 4      p\        ^^4       FV  pVP                  ^dW"34      p\         P                  P                  V4      w  rE\        WE4      w  rgV P                  WgV4       KX  	  R# r  rJ   rK   r[  r   r/   r
   r&   r  rr   r_   r  r  rt   rb   r  r   s   &       rT   test_random_1d_stacked_arrays)TestCDF2RDF.test_random_1d_stacked_arrays  sg    ii##D)q!A

C;'A99==#DAQ]FB!!"!,	 rV   c                   \         P                  P                  R 4      p\        ^^4       FW  pVP                  ^
^
W"34      p\         P                  P                  V4      w  rE\        WE4      w  rgV P                  WgV4       KY  	  R# r  r  r  s   &       rT   test_random_2d_stacked_arrays)TestCDF2RDF.test_random_2d_stacked_arrays  si    ii##D)q!A

BA>*A99==#DAQ]FB!!"!,	 rV   c                    \         P                  ! R4      \         P                  ! R4      r!\        \        \
        W4       R# )rk   Nr   )rk   )rJ   r   r,   r6  r7  r&   rr   rt   rb   s   &  rT   test_low_dimensionality_error)TestCDF2RDF.test_low_dimensionality_error  s%    xx|RXXd^1j'10rV   c                    \         P                  ! ^4      \         P                  ! ^4      P                  ^^4      r!\        \        \
        W4       R# rD  rJ   r2   r5  r6  r7  r&   r  s   &  rT   r8  !TestCDF2RDF.test_not_square_error  s2    yy|RYYq\11!Q71j'10rV   c                    \         P                  ! . RO. RO. RO.4      p\         P                  P                  V4      w  r#\	        \
        \        W24       R# r   rJ   r,   r/   r
   r6  r7  r&   rr   r  rt   rb   s   &   rT   test_swapped_v_w_error"TestCDF2RDF.test_swapped_v_w_error  s7    HHiJ78yy}}Qj'10rV   c                    \         P                  ! ^4      \         P                  ! ^4      P                  ^^4      r!\        \        \
        W4       R# rD  r  r  s   &  rT   test_non_associated_error%TestCDF2RDF.test_non_associated_error  s2    yy|RYYr]221a81j'10rV   c                p   \         P                  ! . RO. RO. RO.4      p\         P                  P                  V4      w  r#\	        \
        \        W#4       \         P                  ! . RO. RO. RO.. RO. RO. RO..4      p\         P                  P                  V4      w  r#\	        \
        \        W#4       R# )ri   Nrj   r}   )rk   rn   y      @      r  r  s   &   rT   test_not_conjugate_pairs$TestCDF2RDF.test_not_conjugate_pairs  s    HHiL9:yy}}Qj'10 HH	<0	<0
  yy}}Qj'10rV   r   N)r   r   r   r   r  r  r  r  r  r  r  r  r	  r  r8  r  r  r  r   r   r   s   @rT   r  r  {  sP     5
)))))--11
11
1 1rV   r  )wasm32wasm64)F)r  platformsysrJ  numpyrJ   numpy.testingr   r   r   r   r   r   r   r	   r6  scipy.linalgr
   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'   scipy.linalg.lapackr(   scipy.linalg._miscr)   scipy.linalg._decomp_qzr*   scipy.statsr+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   scipy.linalg._testutilsr?   scipy.sparse._sputilsr@   scipy._lib._testutilsrA   scipy.linalg.blasrB   scipy.conftestrC   scipy.__config__rD   
test_basicrE   machineIS_WASMr   rU   r   REAL_DTYPESr   rI   rJ  rd   rf   r   r  r  r5  rz  r  r   r  xfail_on_32bitparallel_threads_limitrK  r  r  r  r  r  r  rF  r  blas_providerblas_versionr  r  r<  rM  ro  rr  rt  rw  xfailr}  r  r  r  rR   intpr  r  r  r   rZ   r   r  r  r  r  r   rV   rT   <module>r8     s     
  5 5  *N N N N N N N N 1 # 4 #; ; ; ; ; ; 8 ( 3 ' . # 1<<<'UU8+;+;+=AU+U (-E   zz2::&,,.	~	%
4'= '=TY4 Y4xz$ z$x	~! ~!BI$ I$Vz/ z/zM  G$;<AB##A&rI&BC D  ' C =
#; ;|E Ex xvN- N-b}4 }4@Y# Y#x  $ #+,V4V<*+F3I>p' p'fG5 G5T> ><- -6
 H$$&)3/  1
1
#$ uL  N4N4>5/ 5/p*6 BHHRWW%..2?  AA  UBJJNO P8B 8BvB;J\1 \1rV   