L iFddlZddlZddlZddlZddlmZmZmZm Z m Z m Z ddl Z ddl m ZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-ddl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7ddl8m9Z9ddl:m;Z;ddlZ>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPdd lQmRZRdd lSmTZTdd lUmVZVdd lWmXZX ddlYmZZZejdk(xsejdvZ]de^fdZ_ejejgZaejejgZceaeczZddZeGddZfGddZgGddZhGddZiGddZjGddZkGd d!ekZle jje]d"#e jjd$e jjd%d&Zqd'ZrGd(d)ZsGd*d+ZtGd,d-ZuGd.d/ZvGd0d1ZwGd2d3ZxdxZyZzeZeZd4d5d6ZyeZd4d5d7ZzGd8d9Z{Gd:d;Z|Gd<d=Z}Gd>d?Z~d@Ze jjejdAk(dB#dCZdDZdEZe jjddFGdHZGdIdJZdWdKZe jje jjejejjdLkdM#dNZdOZe jjdPee^ejeejgdQZGdRdSZdTZGdUdVZy#e[$rdZZYwxYw)XN) assert_equalassert_almost_equalassert_array_almost_equalassert_array_equalassert_assert_allclose)raises)eigeigvalslusvdsvdvalscholeskyqrschurrsf2csflu_solve lu_factorsolvediagsvd hessenbergrq eig_bandedeigvals_bandedeigheigvalsh qr_multiplyqzorthordqzsubspace_angleshadamardeigvalsh_tridiagonaleigh_tridiagonal null_spacecdf2rdf LinAlgError) dgbtrfdgbtrszgbtrfzgbtrsdsbevdsbevddsbevxzhbevdzhbevx)norm)_select_function) ortho_group)arraydiagfulllinalgargsortzerosarangefloat32 complex64ravelsqrt iscomplexshapesortsignasarrayisfinitendarrayeye)assert_no_overwrite)matrix)check_free_memory) HAS_ILP64)CONFIG emscripten)wasm32wasm64Fc|tvretjj||tjj||dzz}||j j zdz }n2tjj||}||j zdz }|r'|t d|ztj|zz }|j|S)z7Generate random sym/hermitian array of the given size n?) COMPLEX_DTYPESnprandomrandconjTr>rFastype)nposdefdtypeAs d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/linalg/tests/test_decomp.py_random_hermitian_matrixr^,s  IINN1a 299>>!Q#7#< < ^Q  IINN1a  WaK  T!A#Yrvvay   88E?ct|tr|}|j|dzdz }nEt|tr*t |j dk(r|j d}|}n t dtj|}|jjt|z|z}d|j|zz}|S)aReturn 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'. rQrzinput type not supported.?) isinstanceintrTrElenr@ TypeErrorr3rvsrWrVr5) dim_or_eigvrngdimdvhs r]symrandrnBs+s# JJsOA  ! [' * k A %" 344A  T!Wq A QSSU A Hr_creZdZdZdZdZdZejjde e e e egdZy) TestEigValscgdgdgdg}t|}dtdzdz ddtdz dz g}t||y)NrarQrQ ]rQrr r>rselfawexact_ws r] test_simplezTestEigVals.test_simple^sE  9 - AJd2hJ>1qbz1n5!!W-r_ctgdgdgdgdj}|j}|j}t|}dt dzdz ddt dz dz g}t ||y)NrrrtrkrwrxrQr)r4rWcopyr r>rrzs r]test_simple_trzTestEigVals.test_simple_trdsf 9i3S 9 ; ; FFH CC AJd2hJ>1qbz1n5!!W-r_cgdgdgdg}t|}dtdzdz ddtdz dz g}t||y)NrrrQruy@?y"@?yW@@rQrryrzs r]test_simple_complexzTestEigVals.test_simple_complexlsO  < 0 AJe$a'e$a') "!W-r_cgdgdgdg}t|d}dtdzdz ddtdz dz g}t||y) NrrrtF check_finiterwrxrQrryrzs r] test_finitezTestEigVals.test_finitetsH  9 - AE *d2hJ>1qbz1n5!!W-r_dtctjd|}t|}|jdk(sJ|jttj d|jk(sJt|d}|jdk(sJ|jttj d|jk(sJy)Nrrr[rrQThomogeneous_eigvalsrQr)rSemptyr r@r[rF)r{rr|r}s r] test_emptyzTestEigVals.test_emptyzs HHV2 & AJww$ww'"&&""56<<<<< A4 0ww&   ww'"&&""56<<<<r1rrBrangerW r{r|r}rlr~v0v1v2is r]rzTestEig.test_simples 9i3 41v1d2hJ>1qbz1n5 Aq1T"XaZ<*+ , ;  Aq1T"XaZ<*+ , $r(] $r(] $r(]!!W-!"a1gd1T7m&;<!"a1gd1T7m&;<!"a1gd1T7m&;<q AA %a!AqD'k1Q4!Q$< @ A11A&1q CA %accAadGmQqT!AqD'\ B Cr_ctddgddgg}t|dd\}}}t|tddgtdD]%}t||dd|fz|||dd|fz'tdD]K}t|j j |dd|fz||j |dd|fzMy)NrarQr?@y?)r4r rrrVrWr{r|r}vlvrrs r]test_simple_complex_eigzTestEig.test_simple_complex_eigs Aq6B7# $+ 2r!!UD$<%89q CA %a"QT(lAaDAqDM B Cq )rrr)rrryrPg|=)tolr)rCrSrFr@r r rrlexsortrrer1onessizeallrD real_if_closer8absimagrA)r{r\B atol_homog rtol_homogrrB0msgr}rwtval1val2rpermpermtlength beta_nonzerowhresw_finwt_fins r]_check_gen_eigzTestEig._check_gen_eigs =1:wqzqAB AB A1%r!Art42 Q 52v!Q$2v!Q$tzz!}% KA DAJQT !+*c K K : AadGQ ' Bq!tHa (zz!} 2!T' Bq%xLt$ # %#b'"s2w 'AR1XF1I '  4c! .!Q$1 q, !A|O"4 4Ar 2 Q^2v2vzTksyy|$ CAvvhs1a4y)*AqD 1%)cC C (1+HRL!b&&r%xU;;r''6 u==s5zEJJ./F fkk12d VE]!c ;#b'"s2w 'AR1XF1I ' 4cB R$qQ'8"9:r_ctgdgdgdgdgdg}tgdgdgdgd gd g}tjd 5|j||d d dddy#1swYyxYw)N)"r)-r*)'/1r)rr)&,r) rrr)r.(r%)rrrrr)rr)r#rrignorerg-a=)rr)r4rSerrstaterr{r\rs r] test_singularzTestEig.test_singulars ''''' ) * ''''' ) * [[X & D   1U  C D D Ds A**A3cttgd}tgdgdgdf}tgdgdgdf}td}td }t j ||g|| gg}t j ||g||gg}t j d 5|j||dddy#1swYyxYw) N)rarrs)rQrr)rrQr)rrrQ)rarr)rrarrrrrsrsrsrr)r5r4r9rFrSblockrr)r{MKDZI3r\rs r] test_falkerzTestEig.test_falkers y! " ; [9 : :z95 6 &M V HHr1gA2w' ( HHq"g1v& ' [[X & &   1 % & & &s "B>>Ccd}tjd5tdD]&}||dzdz \}}|j||( dddy#1swYyxYw)Ncnd|dzz}d|z}gdgddd|dgddd|gg}gdgdddd| gdd|dgg}||fS) NrQ)rarrr)rrarrr)rrrar)rrrrarar)omegac1c2r\rs r]matricesz)TestEig.test_bad_geneig..matrices&smeQhB5BQAQ2 AQB3QA Aa4Kr_rrd@)r )rSrrr)r{rkr\rs r]test_bad_geneigzTestEig.test_bad_geneig#sc [[X & *3Z *ad3h/1##Aq) * * * *s 5AA"ctjjd}td|}|j |dtd|}|j |||jdd|jdzz}|j |d|jdd|jdzz}|j ||y)NrsrrP)rSrT RandomStaternr)r{rir\rs r]test_make_eigvalszTestEig.test_make_eigvals:sii##D) AsO At$ AsO Aq! JJv CJJv$6!6 6 At$ JJv CJJv$6!6 6 Aq!r_cgdgdgdg}t|d\}}dtdzdz ddtdz dz g}td d d tdd z zdz g}tgd }td d d tdd z z dz g}|t|z }|t|z }|t|z }t ||t ||dddft |d zt ||ddd ft |d zt ||dddft |dzt d D]%}t ||dd|fz|||dd|fz'y)NrrrtFrrwrxrQrrarsrrrr)r r>r4r1rrBrrs r]test_check_finitezTestEig.test_check_finiteHsY  9 -15)1d2hJ>1qbz1n5 Aq1T"XaZ<*+ , ;  Aq1T"XaZ<*+ , $r(] $r(] $r(]!!W-!"a1gd1T7m&;<!"a1gd1T7m&;<!"a1gd1T7m&;<q AA %a!AqD'k1Q4!Q$< @ Ar_cxtjdjdd}ttt |y)z:Check that passing a non-square array raises a ValueError.rvrsrQN)rSr:reshape assert_raises ValueErrorr )r{r\s r]test_not_square_errorzTestEig.test_not_square_errorYs( IIaL A &j#q)r_ctd}tjdjdd}t t t ||t t t ||y)zOCheck that passing arrays of with different shapes raises a ValueError.rQ"@rsN)rFrSr:rrrr rs r]test_shape_mismatchzTestEig.test_shape_mismatch^sC F IIcN " "1a (j#q!,j#q!,r_ctjgdgdgdgdgd}tjgdgdgd gd gd}t||\}}tjj 5}|j t d tj|d d jsJtj|dd jsJ dddy#1swYyxYw)N)g(@<@gS@gk@)g0@g@@gT@gl@)g8@D@gV@gm@)r#gL@gZ@go@float64r)@@$@r")rr&@g=@)r@g*@g?@)rr(g1@gA@z%invalid value encountered in multiplyr&+=r @) rSr4r testingsuppress_warningsfilterRuntimeWarningiscloseany)r{r\rrVsups r] test_gh_11577zTestEig.test_gh_11577fs HH///02:C D HH,,,-/7@ A 1ay1ZZ ) ) + 8s JJ~'N O::a51557 77::a51557 77  8 8 8s 4A'C%%C.rcRtjd|}t|\}}ttjd|\}}|jdk(sJ|j |j k(sJt |tjd|jdk(sJ|j |j k(sJt|d\}}|jdk(sJ|j |j k(sJ|jdk(sJ|j |j k(sJy)NrrrQrTrr)rSrr rFr@r[r)r{rr|r}rw_nvr_ns r]rzTestEig.test_emptys HHV2 &A2q+, Tww$ww#))###BHHV,-xx6!!!xx4::%%%A402ww&   ww#))###xx6!!!xx4::%%%r_ include_BFTrrrr[cfd}d}tjjd}|j||zj|} |j||zj|} t ||} |rt | f| |d| } nt | fd|i| } t |dD]} t |dD]w}|rt | | |ff| | |f|d| }nt | | |ffd|i| }|s|r1t t|D]}t| || |f||gt| | |f|yy) NrsrQ)r<lF)Q )rr)rrrrra) rSrT default_rngrXdictr rrer)r{r9rrrr[ batch_shape core_shaperir\rkwargsrrjrefrs r] test_nd_inputzTestEig.test_nd_inputsW   ii##M2 JJ{Z/ 0 7 7 > JJ{Z/ 0 7 7 >E7JK a214262Ca-d-f-C{1~& 4A;q>* 4a1gF1a4tFvFCa1g;D;F;C5"3s8_>'Aq!t c!f=>$C1Is3 4 4r_N)vIh%<=rErErE)rrrrrrrrrrrrrrr r5rrrrdrrSr;rr<r complex128rDrr_r]rrs4C(<< AF49H;TD" &*. "A"* -88 [[TC GR\\#RS&T&( [[[5$-8 [[VeT]3 [[Wudm4 [[2UDMB [[Wrzz2==&AB4CC549 4r_rceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd Zej"j%deeej,eej0gdZy) TestEigBandedc$|jyN)create_bandmatr{s r] setup_methodzTestEigBanded.setup_methods r_c d}d|_d|_tt|dtt|dz ddztt|dz ddztt|dz ddztt|dz ddz|_tt|dd tt|dz ddzzd tt|dz ddzz tt|dz ddztt|dz ddz|_tt|dtt|dz ddztt|dz d dztt|dz d dztt|dz ddz|_d tt|dztt|dz ddzd tt|dz d dzztt|dz d dztt|dz ddz|_tj|j\}}|j}t|}|||_ |d d |f|_ tj|j \}}|j}t|}|||_|d d |f|_|jdz}t!||ft" |_t!||ft& |_t+|D]\}t|j||j$||z dz ||f<t|j ||j(||z dz ||f<^d|jz|jzdz}t!||ft" |_t|j |j,d|jzd d f<t+|jD]}t|j |dz|j,d|jzdz |z |dz|f<t|j | dz |j,d|jzdz|zd|dz |z f<t!||ft& |_t|j|j.d|jzd d f<t+|jD]}t|j|dz|j.d|jzdz |z |dz|f<t|j| dz |j.d|jzdz|zd|dz |z f<dt1|z|_|j2dz|_y )zbCreate the full matrix `self.fullmat` and the corresponding band matrix `self.bandmat`. rQ?rarrrPr%Nrr??)KLKUr5r6sym_matherm_matreal_matcomp_matr7r realr8 w_sym_lin evec_sym_lin w_herm_lin evec_herm_linr9r bandmat_symr bandmat_hermr bandmat_real bandmat_compr:rbc)r{NewevargsLDABrs r]rKzTestEigBanded.create_bandmats% T!S\*tAaC346:4!T?A6NOtAaC346:4!T?A6NO d1dm,d4!S>2667d4!S>1556 QqS$45 QqS$3 4 d1cl+QqS$457;D1dOQ7OPQqS#346:4!T?A6NO Da..QqS$45d4!T?A667 QqS#34 QqS$3 4 DLL)B WWr{Dq$wKDMM*B WWr{T(4[ ww{ $%8!4)7;t FA.24<<.CD  T!VAXqs] +/3DMM1/ED  d1fQh!m , F y477"Q&!4)59*.t}}*=!DGG)Q,'tww CA6:4==!A#6ND  aik!mQqSU2 38?RT9CD  aik!mQqs1uW4 5  C"4)7;*.t}}*=!DGG)Q,'tww CA6:4==!A#6ND  aik!mQqSU2 38?RT9CD  aik!mQqs1uW4 5  CVAY&&F#r_ct|jd\}}}|ddt|f}tt ||j tt |t |jy)zTCompare dsbev eigenvalues and eigenvectors with the result of linalg.eig.ra compute_vN)r,r`r8rrAr\rr]r{r}evecinfoevec_s r] test_dsbevzTestEigBanded.test_dsbev sYd..!< 4Q ]#!$q'4>>:!#e*c$2C2C.DEr_ct|jd\}}}|ddt|f}tt ||j tt |t |jy)zUCompare dsbevd eigenvalues and eigenvectors with the result of linalg.eig.rarkN)r-r`r8rrAr\rr]rms r] test_dsbevdzTestEigBanded.test_dsbevdsYt//1= 4Q ]#!$q'4>>:!#e*c$2C2C.DEr_c *t|j\}}t|jddd|dd\}}}}}|ddt |f}t t ||jt t|t|jy)zUCompare dsbevx eigenvalues and eigenvectors with the result of linalg.eig.rarQrlrN) r@rWr.r`r8rrAr\rr]r{rer}rnnumifailrorps r] test_dsbevxzTestEigBanded.test_dsbevxs~T\\"1$*4+;+;S#q!56a%A!4eTQ ]#!$q'4>>:!#e*c$2C2C.DEr_ct|jd\}}}|ddt|f}tt ||j tt |t |jy)zUCompare zhbevd eigenvalues and eigenvectors with the result of linalg.eig.rarkN)r/rar8rrAr^rr_rms r] test_zhbevdzTestEigBanded.test_zhbevd'sYt00A> 4Q ]#!$q'4??;!#e*c$2D2D.EFr_c *t|j\}}t|jddd|dd\}}}}}|ddt |f}t t ||jt t|t|jy)zUCompare zhbevx eigenvalues and eigenvectors with the result of linalg.eig.rurarQrvN) r@rXr0rar8rrAr^rr_rws r] test_zhbevxzTestEigBanded.test_zhbevx/s~T]]#1$*4+<+t|j}|j}tt ||j t|j }|j}tt ||jd}tjd}t|jd||f}tt ||j ||dzt|j d||f}tt ||j||dz|j |dz }|j |dz}t|jd||f} tt | |j ||dz|j|dz }|j|dz}t|j d||f} tt | |j||dzt|jd }|j}tt ||j y ) z?Compare eigenvalues of eigvals_banded with those of linalg.eig.rQrvrselect select_rangerah㈵>rlFrN) rr`r[rrAr\rar^rSlonglong) r{w_symw_hermind1ind2 w_sym_ind w_herm_indv_lowerv_upper w_sym_val w_herm_vals r]test_eigvals_bandedz!TestEigBanded.test_eigvals_banded:st//0 !$u+t~~> 1 12!$v,@{{1~"4#3#3*-T4LJ !$y/"&..d1f"= ?#D$5$5+.dD\K !$z"2"&//$tAv"> @..&/..&/"4#3#3*-Wg @t//eD !$u+t~~>r_c 2t|j\}}|ddt|jf}t t ||j t t|t|jt|j\}}|ddt|jf}t t ||jt t|t|jd}d}t|jd||f\} } t t | |j ||dzt t| t|jdd||dzft|jd||f\} } t t | |j||dzt t| t|jdd||dzf|j |dz } |j |dz}t|jd| |f\}}t t ||j ||dzt t|t|jdd||dzf|j|dz } |j|dz}t|jd| |f\}}t t ||j||dzt t|t|jdd||dzft|jd \}}|ddt|jf}t t ||j t t|t|jy) zXCompare eigenvalues and eigenvectors of eig_banded with those of linalg.eig. NrQrvrrrarrlFr) rr`r8r[rrAr\rr]rar^r_)r{revec_sym evec_sym_r evec_herm evec_herm_rrr evec_sym_indr evec_herm_indrrr evec_sym_valr evec_herm_vals r]test_eig_bandedzTestEigBanded.test_eig_bandedds>%T%5%56xQ 334 !$u+t~~>!#i.#d6G6G2HI&t'8'89 q'&++"667 !$v,@!#j/3t7I7I3JK",T-=-=47;?,#H < "$y/"&..d1f"= ?!#l"3"%d&7&74Q;&G"H J%/t/@/@69=A4L%J! M "$z"2"&//$tAv"> @!#m"4"%d&8&8DaK&H"I K..&/..&/",T-=-=47;BG:L#N < "$y/"&..d1f"= ?!#l"3"%d&7&74Q;&G"H J//$'&0//$'&0$.t/@/@69=Dg @!#m"4"%d&8&8DaK&H"I K%T%5%5EJxQ 334 !$u+t~~>!#i.#d6G6G2HIr_ct|j\}}t|j|j|j \}}}t |d|jzddf}t|j|j zD]1}|t |d|jzdz |z |dz|f|dzz }3t|jd\}} } t|| y)zZCompare dgbtrf LU factorisation with the LU factorisation result of linalg.lu.rQNrar permute_l) r@rYr(rbrUrVr5rr r r{rre lu_symm_bandipivrourp_linl_linu_lins r] test_dgbtrfzTestEigBanded.test_dgbtrfT]]#1#)$*;*;TWWdgg#N dD ail+ ,tww() ?A l1TWW9Q;q=!A#a%#78!A#> >A ?!!<ue!!U+r_ct|j\}}t|j|j|j \}}}t |d|jzddf}t|j|j zD]1}|t |d|jzdz |z |dz|f|dzz }3t|jd\}} } t|| y)zZCompare zgbtrf LU factorisation with the LU factorisation result of linalg.lu.rQNrarr) r@rZr*rcrUrVr5rr rrs r] test_zgbtrfzTestEigBanded.test_zgbtrfrr_c.t|j|j|j\}}}t ||j|j|j |\}}t j|j|j }t||y)zhCompare dgbtrs solutions for linear equation system A*x = b with solutions of linalg.solve.N) r(rbrUrVr)rr7rrYrr{rrroyy_lins r] test_dgbtrszTestEigBanded.test_dgbtrssk$*$*;*;TWWdgg#N dDtwwF4 T]]DFF3!!U+r_c.t|j|j|j\}}}t ||j|j|j |\}}t j|j|j }t||y)zhCompare zgbtrs solutions for linear equation system A*x = b with solutions of linalg.solve.N) r*rcrUrVr+rdr7rrZrrs r] test_zgbtrszTestEigBanded.test_zgbtrssk$*$*;*;TWWdgg#N dDtww$G4 T]]DGG4!!U+r_rctjd|}t|\}}ttjddgddgg|\}}|jdk(sJ|j |j k(sJ|jdk(sJ|j |j k(sJt|d}|jdk(sJ|j |j k(sJy)NrrrrarT eigvals_only)rSrrr4r@r[)r{ra_bandr}rlr7v_ns r]rzTestEigBanded.test_emptys&+&!1bhhAA'7rBCSww$ww#))###ww&   ww#))### vD 1ww$ww#))###r_N)rrrrMrKrqrsrzr|r~rrrrrrrrrrdrrSr;rr<rrr_r]rHrHsM$bFF FG G(?T8Jt , ,,, [[TC GR\\#RS$T$r_rHc0eZdZdZdZdZdZdZdZy)TestEigTridiagonalc$|jyrJ) create_trimatrLs r]rMzTestEigTridiagonal.setup_methods r_cd}t|d|_t|dz d|_t|jt|jdzt|jdz|_t j |j\}}|j}t|}|||_ |dd|f|_ y)z>Create the full matrix `self.fullmat`, `self.d`, and `self.e`.rOrPrarQrN) r6rker5full_matr7r r[r8r}rn)r{rerfrgrhs r]rz TestEigTridiagonal.create_trimats aac4dffTVVR(884?J DMM*B WWr{Dq$wK r_cttt|j|jddtt t|j|jdztt t|j|jdttt|j|jdttt|j|jdd y) zTest error conditions.NrrPrP lapack_driverfoorrrr)rrr#rkrrfrLs r]test_degeneratez"TestEigTridiagonal.test_degenerates j"6s Li!5tvvtvv{Ki!5tvvtvv$& (j"6$) + j"6 w 8r_c BdD]C}t|j|j|}tt ||j EdD]0}t tt|j|j|dd2dD]}t|j|jddt|jd z f| }tt ||j d }d }t|j|jd||f| }tt ||j ||d z|j |d z }|j |d z}t|j|jd||f| }tt ||j ||d zy)z>Compare eigenvalues of eigvalsh_tridiagonal with those of eig.)sterfstevstevdstebzstemrautor)rrrrrrrrrrrrrarrrrQrvrrlN) r#rkrrrAr}rrre) r{driverr}w_indrrrrw_vals r]test_eigvalsh_tridiagonalz,TestEigTridiagonal.test_eigvalsh_tridiagonalsyK 7F$TVVTVV6JA %d1gtvv 6 71 /F *&:DFFDFF(.s'- / /1 HF(s!S[]9K$&E &d5k466 :DD(s$$&E &d5k466$tAv3F GffTlV+GffTlV+G(s'79K$&E &d5k466$tAv3F G+ Hr_c @ttt|j|jddD]}t|j|j|\}}|ddt |f}t t||jt t|t|jttt|j|jdddd D]}d }t|jd z }t|j|jd||f| \}}t t||jt t|t|jd }d}t|j|jd||f| \}}t t||j||d zt t|t|jdd||d zf|j|dz }|j|dz}t|j|jd||f| \}}t t||j||d zt t|t|jdd||d zfy)zWCompare eigenvalues and eigenvectors of eigh_tridiagonal with those of eig. rr)rrrrrNrrrrrrrarrQrvrrl) rrr$rkrr8rrAr}rrnre) r{rr}rnrprrrrs r]test_eigh_tridiagonalz(TestEigTridiagonal.test_eigh_tridiagonal#s2 j"2DFFDFF$+ -A BF&tvvtvvVLGAtGAJ'E %d1gtvv 6 %c%j#dii. A  B j"2DFFDFF$*3V M0 FFDtvv;q=D&s$$&GAt &d1gtvv 6 %c$iTYY @DD&s$$&GAt &d1gtvvd46/B C %c$i&)$))AtDF{N*C&D FffTlV+GffTlV+G&s'79K$&GAt &d1gtvvd46/B C %c$i&)$))AtDF{N*C&D F3 Fr_ctjdg}tjg}t||d}|jdk(sJt ||t||dd\}}|jdk(sJ|jdk(sJt ||t |td ggt||d d \}}|j d k(sJ|j d k(sJ|j dk(sJy)z See gh-20075rRTrrarrrrQrPrl)rrrrrN)rSr4r$ndimrrr@)r{r|rxr3s r]test_eigh_tridiagonal_1x1z,TestEigTridiagonal.test_eigh_tridiagonal_1x1Ms HHdV  HHRL Q 5vv{{11SvF1vv{{vv{{152$=)1SwG1vv{{ww$ww&   r_N) rrrrMrrrrrrr_r]rrs$   8 HD(FT!r_rceZdZdZdZdZdZdZdZe jjde e jjdd d Z e jjdd d Ze jjd d e jjdddZdZe jjdeeej(eej,gdZy)TestEighcBtjjdy)Nr)rSrTseedrLs r] setup_classzTestEigh.setup_classas tr_c ttttjddgttttjddgtjddgttttjddgtjddgttttjddgtjddgdttttjddgtjddgddgddgttttjddgtjddgddgttttjddgtjddgd dgttttjddgtjddgddgttttjddgtjddgddg ttttjddgd ttttjddgdd ttttjddgtjddgd ttttjddgtjddgdddgttttjddgtjddgdddgy)NrarQrsr<)type)subset_by_valuesubset_by_indexrrrrwrongrgvxevrgvd)rr)rrrrSrrLs r]test_wrong_inputszTestEigh.test_wrong_inputsdsTj$A8j$A!QIj$A!QIj$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$AHj$AeLj$A!Q" $ j$A!Q"QF <j$A!Q"QF *ww$ww#))###r_N)rrrrrrrrrrrrrrrr rrdrrSr;rr<rrr_r]rr`s$s@ii##D)  q AA!. A **aV,cjj!Q.@A AABszz$qww-888A"1M151C1C EHAq"-affhjj1n.1!''!*o? "1771:rxx{";QWW\\JE"3q6]+&'dad +-a%i"na@ A A Ar_cHtjjd}gd}|D]z}tjtjtj tj fD]7}|j|j|}t||j9|y)Nr))rr)r2)<rr) rSrTrr;r$r<rFrUrXr r)r{risizesszrr|s r]test_crash_1580zTestSVD_GESDD.test_crash_1580Rs|ii##D)/ 9Bzz2::r||R]]K 9CHHbM((,AT%7%78 9 9r_cgdgdgdg}t|d|j\}}}t|j|zt dt|j|zt dt |j d|j df|jj}tt|D] }|||||f<t||z|z|y)NrrrrtF)rrrsrr)r{r|rrrr rs r]rzTestSVD_GESDD.test_check_finite[s  I .quDs1v AA$E!Q$K !!e)b.!4r_cttjgdgdgdgdg}t||jy)N)K}\UU?vWUU?r8rururu)rur8r9r8ruru)rurur8r9r8ru)rururur8r9r8r)rSr4r r)r{rs r] test_gh_5039zTestSVD_GESDD.test_gh_5039es6 HH = = = = ? @ AT//0r_z64-bit LAPACK requiredreasonctdtjddgtj}d|d<t |d\}}}t |d d t |d |dzd y) NihB)free_mbralrrFrrrPr)rIrSr9r;r r)r{r\rrrs r]test_large_matrixzTestSVD_GESDD.test_large_matrixvsd %( HHaZrzz 2%q.1b!c"$"U)+S1r_r*rrarQrYr[ctj||f|}t||}|jj}|dvr|j n|}t |\}} } t|j||ft|j|t| j|ft| jtj|t| j||ft| j|t |d\}} } t|j||ft|j|t| j|ft| jtj|t| j||ft| j|t |d} t| j|ft| jtj|y)NrFDFr? compute_uv) rSr9minr[rlowerr rr@) r{r*rYr[r|rdchar real_dcharrrrls r]test_shape_dtypezTestSVD_GESDD.test_shape_dtypese HHaV5 ) 1I &+tmU[[] a&1aQWWq!f%QWWe$QWWqd#QWWbhhz23QWWq!f%QWWe$au-1aQWWq!f%QWWe$QWWqd#QWWbhhz23QWWq!f%QWWe$ e $QWWqd#QWWbhhz23r_rr*rYrrrctjd|}t|\}}}tj||f|}t|\} } } t | tj |t | tjdt | tj || j |j k(sJ| j |j k(sJ| j |j k(sJt|d\} } } t | tj|dft | tjdt | tjd|f| j |j k(sJ| j |j k(sJ| j |j k(sJt|d} t | tjd| j |j k(sJy)NrsrrFr?rrD)rSrFr rrrr[) r{rr*rYa0u0s0rr|rrrls r]rzTestSVD_GESDD.test_emptysVVAR W B HHaV2 &a&1a2;;q>*288D>*2;;q>*ww"(("""ww"(("""ww"(("""au-1a288QF+,288D>*288QF+,ww"(("""ww"(("""ww"((""" e $288D>*ww"(("""r_N)rrrrrrr"r&r(r+rr/r5rr:rrskipifrJslowr@rrrJrdrrSr;rr<rrr_r]rrs*MD 9 9 9 9A 9A(951" [[I .FG [[2H2 [[S), [[S), [[Wf-4.--44 [[TC GR\\#RS [[Z)AB#CT#r_rceZdZdZy) TestSVD_GESVDgesvdN)rrrrrr_r]rTrTsMr_rTzout of memory in WASMr;z#out of memory in 32-bit CI workflowrOctjdtj}tt5t |dddy#1swYyxYw)N)iir)rSrr$rrr )dfs r]test_svd_gesdd_nofegfaultrXs<  ww}BJJ/B z " Bs A  Actjd}tj|d<tjt d5t |ddddy#1swYyxYw)NrQrNaN)matchFr)rSrFnanrr rr r\s r]test_gesdd_nan_error_messager^sI q AffAdG z /# AE"###s AA$ceZdZejj deeeje ejgdZ dZ dZdZdZdZdZd Zejj(d Zy ) TestSVDValsrc^ggtjdtjdfD]~}tj||}t |}t |tjdt tj d|}|j|jk(r~Jy)NrrrsrrrQ)rSrrr4rrrFr[)r{rr|rrPs r]rzTestSVDVals.test_emptysrxx'8 'A"%A A BHHQK (,-B77bhh& &&  'r_cgdgdgdg}t|}tt|dk(t|d|dcxk\xr |dk\ycy)NrrrtrsrrarQrrrer{r|rs r]rzTestSVDVals.test_simplesK  9 - AJA! !!$!$%$%r_cgdgdg}t|}tt|dk(t|d|dk\y)Nrrr$rQrrardres r]r&z TestSVDVals.test_simple_underdets9  " AJA! !! r_cddgddgddgg}t|}tt|dk(t|d|dk\y)NrarQr<rursrrdres r]r(zTestSVDVals.test_simple_overdetsGVaVaV $ AJA! !! r_cgdgdgdg}t|}tt|dk(t|d|dcxk\xr |dk\ycy)Nrr)rar@rtrsrrarQrdres r]rzTestSVDVals.test_simple_complexsK  Y / AJA! !!$!$%$%r_cgdgdg}t|}tt|dk(t|d|dk\y)Nrr)r<y@rvrQrrardres r]test_simple_underdet_complexz(TestSVDVals.test_simple_underdet_complexs9  # AJA! !! r_cddgddgddgg}t|}tt|dk(t|d|dk\y)NrarQr<rurirrdres r]test_simple_overdet_complexz'TestSVDVals.test_simple_overdet_complexsGVaVb!W % AJA! !! r_cgdgdgdg}t|d}tt|dk(t|d|dcxk\xr |dk\ycy) NrrrtFrrsrrarQrdres r]rzTestSVDVals.test_check_finitesN  9 - AE *A! !!$!$%$%r_ctjjdtjjdd}t |y)Nrii )rSrTrrUrr{r|s r]test_crash_2609zTestSVDVals.test_crash_2609 s- t IINN4 & r_N)rrrrrrrdrrSr;rr<rrr&r(rrkrmrrRrqrr_r]r`r`sz [[TC GR\\#RS'T'&   &   &  [[r_r`ceZdZdZy) TestDiagSVDcHttgdddgdgdgdgy)Nrarrrsr)rrrLs r]rzTestDiagSVD.test_simples !')Q":#,i"C Er_N)rrrrrr_r]rsrssEr_rsceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6e7jpjsd5gd6e7jpjsd7gd6e7jpjsd8d9d:ge7jpjsd;e:d<Z;e7jpjsd=gd>d?ZsI  9 -D) 1d !!Q5 At!!a%,r_cgdgdgdg}t|d\}}}gd}t||d\}}}t||z|y)Nrzr|r}Trrrrrs r]test_simple_right_pivotingz!TestQR.test_simple_right_pivotingEsG  9 -D) 1d !!Q6 At!!a%,r_cgdgdg}t|\}}t|j|ztdt||z|y)Nrzr|rQr~rs r]test_simple_trapzTestQR.test_simple_trapL=  "!u1!!##'3q62!!a%+r_ctjgdgdg}t|d\}}}tt |}t tj |dd|ddkt|j|ztdt||z|dd|ft|dd|f\}}t||t||y)Nrzr|TrrarrQrrs r]test_simple_trap_pivotingz TestQR.test_simple_trap_pivotingRs JJ 9- .Q&1a QLqu#2'(!!##'3q62!!a%1a41AadGB!!R(!!R(r_cddgddgddgg}t|\}}t|j|ztdt||z|yNr{rQrwrursr~rs r]test_simple_tallzTestQR.test_simple_tall]sKVaVaV $!u1!!##'3q62!!a%+r_ctjddgddgddgg}t|d\}}}tt |}t tj |dd|dd kt|j|ztdt||z|dd|ft|dd|f\}}t||t||y) Nr{rQrwrursTrrarrrs r]test_simple_tall_pivotingz TestQR.test_simple_tall_pivotingds JJAAA/ 0Q&1a QLqu#2'(!!##'3q62!!a%1a41AadGB!!R(!!R(r_cddgddgddgg}t|d\}}t|j|ztdt||z|t |j dt |j d y) Nr{rQrwrurseconomicmoder;rQrQrrrWrFrr@rs r]test_simple_tall_ezTestQR.test_simple_tall_epsjVaVaV $!*%1!!##'3q62!!a%+QWWf%QWWf%r_ctjddgddgddgg}t|dd\}}}tt |}t tj |d d|dd kt|j|ztdt||z|dd|ft|dd|fd \}}t||t||y) Nr{rQrwrursTrrrrarrrrs r]test_simple_tall_e_pivotingz"TestQR.test_simple_tall_e_pivotingys JJAAA/ 0QJ71a QLqu#2'(!!##'3q62!!a%1a41AadG*-B!!R(!!R(r_cDddgddgddgg}t|d\}}ddg}t||d \}}t||z|t||tgd }t||d d \}}t||ddz|t|t dd \}}t||y) Nr{rQrwrursrrrarrarQrT overwrite_crrrr4rFrs r]test_simple_tall_leftzTestQR.test_simple_tall_leftsVaVaV $!*%1 FQ6*B!!a%,!!R( ) Q6t<B!!ae)R0As1vv.A!"a(r_cddgddgddgg}t|dd\}}}d dg}t||d d\}}}t||t||z|t|t dd d\}}}t||y) Nr{rQrwrursrTrrrar)rrrrrF)r{r|rrrrrkpvts r]test_simple_tall_left_pivotingz%TestQR.test_simple_tall_left_pivotingsVaVaV $ T: 1d F!!Q5 At4&!!a%,!!SVVT: At!"a(r_cddgddgddgg}t|d\}}gd}t||\}}t||z|t||t|td\}}t||y) Nr{rQrwrursrrrrrr{r|rrrcqrs r]test_simple_tall_rightzTestQR.test_simple_tall_rightsuVaVaV $!*%1 Q"B!!a%,!!R(As1v&A!"a(r_cddgddgddgg}t|dd\}}}gd }t||d \}}}t||z|t|tdd \}}}t||y) Nr{rQrwrursTrrrrrrr{r|rrrrrs r]test_simple_tall_right_pivotingz&TestQR.test_simple_tall_right_pivotingswVaVaV $Dz: 1d !!Q6 At!!a%,!!SVd; At!"a(r_cgdgdg}t|\}}t|j|ztdt||z|t |j dt |j dy)Nr{rQrur|rQrrQrsrrs r]test_simple_fatzTestQR.test_simple_fatsY  "!u1!!##'3q62!!a%+QWWf%QWWf%r_ctjgdgdg}t|d\}}}tt |}t tj |dd|ddkt|j|ztdt||z|dd|ft|jdt|jd t|dd|f\}}t||t||y) Nrr|TrrarrQrr rSrCrrr5rrrrWrFrr@rs r]test_simple_fat_pivotingzTestQR.test_simple_fat_pivotings JJ 9- .Q&1a QLqu#2'(!!##'3q62!!a%1a41QWWf%QWWf%AadGB!!R(!!R(r_cgdgdg}t|d\}}t|j|ztdt||z|t |j dt |j dy)NrzrQrwrurrrQrrrrs r]test_simple_fat_ezTestQR.test_simple_fat_es\  "!*%1!!##'3q62!!a%+QWWf%QWWf%r_ctjgdgdg}t|dd\}}}tt |}t tj |dd|ddkt|j|ztdt||z|dd|ft|jd t|jd t|dd|fd \}}t||t||y) NrzrTrrrarrQrrrrrs r]test_simple_fat_e_pivotingz!TestQR.test_simple_fat_e_pivotings JJ 9- .QJ71a QLqu#2'(!!##'3q62!!a%1a41QWWf%QWWf%AadG*-B!!R(!!R(r_cgdgdg}t|d\}}ddg}t||d\}}t||z|t||t|tdd\}}t||y)NrzrrrrarQrrrs r]test_simple_fat_leftzTestQR.test_simple_fat_leftso  "!*%1 FQ6*B!!a%,!!R(As1vv.A!"a(r_cgdgdg}t|dd\}}}ddg}t||dd\}}}t||z|t|tddd\}}}t||y) NrzrrTrrarQrrrs r]test_simple_fat_left_pivotingz$TestQR.test_simple_fat_left_pivotingsq  " T: 1d F!!Q5 At!!a%,!!SVVT: At!"a(r_cgdgdg}t|d\}}ddg}t||\}}t||z|t||t|td\}}t||y)NrzrrrrarQrrs r]test_simple_fat_rightzTestQR.test_simple_fat_rightsk  "!*%1 FQ"B!!a%,!!R(As1v&A!"a(r_cgdgdg}t|dd\}}}ddg}t||d\}}}t||z|t|tdd\}}}t||y) NrzrTrrrarQrrrs r]test_simple_fat_right_pivotingz%TestQR.test_simple_fat_right_pivotingsm  "Dz: 1d F!!Q6 At!!a%,!!SVd; At!"a(r_cgdgdgdg}t|\}}t|jj|zt dt||z|yNrs@@rururQy@@rsrQrrs)rrrVrWrFrs r]rzTestQR.test_simple_complexsE < 3!u1!!&&(**q.#a&9!!a%+r_cgdgdgdg}t|\}}gd}t||d\}}t||z|t|tdd\}}t||y)NrrrrarQrrrsrr{r|rrrrs r]test_simple_complex_leftzTestQR.test_simple_complex_left s` < 3!u1 Aq&)A!!a%,As1vv.A!!R(r_cgdgdgdg}t|\}}gd}t||\}}t||z|t|td\}}t||y)Nrrrrrsrrs r]test_simple_complex_rightz TestQR.test_simple_complex_rights\ < 3!u1 Aq!A!!a%,As1v&A!!R(r_cDddgddgddgg}t|d\}}d d g}t||d \}}t||z|t||tgd }t||d d \}}t||ddz|t|t dd \}}t||y)Nr{y@@rQrwy@@rsrrra@@rrTrrrs r]test_simple_tall_complex_leftz$TestQR.test_simple_tall_complex_leftsYAq *!*%1 IQ6*B!!a%,!!R( ) Q6t<B!!ae)R0As1vv.A!"a(r_cgdgdgdg}t|\}}gd}t||dd\}}t|j|z|y)NrrrrrT conjugaterrrrVrs r]"test_simple_complex_left_conjugatez)TestQR.test_simple_complex_left_conjugate(sH < 3!u1 Aq&D9A!!&&(Q,3r_cddgddgddgg}t|d\}}ddg}t||d d \}}t|j|z|y) NrsrrurrQrrrarTrrrs r]'test_simple_complex_tall_left_conjugatez.TestQR.test_simple_complex_tall_left_conjugate/s[YD Aq6 *!*%1 IAq&D9A!!&&(Q,3r_cgdgdgdg}t|\}}tjgd}t||d\}}t ||j z|y)NrrrrTr)rrSr4rrrVrs r]#test_simple_complex_right_conjugatez*TestQR.test_simple_complex_right_conjugate6sO < 3!u1 HH\ "AqD1A!!affh,3r_ctgdgdgdg}t|d\}}}tt|}t t j |dd|ddkt|jj|ztdt||z|dd|ft|dd|f\}}t||t||y) NrrrTrrarrs) r4rrr5rrSrrrVrWrFrs r]test_simple_complex_pivotingz#TestQR.test_simple_complex_pivoting=s <y9 :Q&1a QLqu#2'(!!&&(**q.#a&9!!a%1a41AadGB!!R(!!R(r_ctgdgdgdg}t|d\}}}gd}t||dd\}}}t||z|y)NrrrTrrrr4rrrrs r]!test_simple_complex_left_pivotingz(TestQR.test_simple_complex_left_pivotingHsN <y9 :D) 1d !!Q5 At!!a%,r_ctgdgdgdg}t|d\}}}gd}t||d\}}}t||z|y)NrrrTrrrrs r]"test_simple_complex_right_pivotingz)TestQR.test_simple_complex_right_pivotingOsL <y9 :D) 1d !!Q6 At!!a%,r_c tjjd}d}tdD]T}|j||g}t |\}}t |j |zt|t ||z|VyNrrrQrSrTrrrrrWrFr{rirYrr|rrs r]r+zTestQR.test_randomVsqii##D) q 0A Aq6"Aa5DAq %accAgs1v 6 %a!eQ /  0r_cTtjjd}d}tdD]y}|j||g}t |\}}|j|g}t ||d\}}t ||z|t |t|d\}}t ||{y)NrrrQrrSrTrrrrrrF r{rirYrr|rrrrs r]test_random_leftzTestQR.test_random_left_sii##D) q -A Aq6"Aa5DAq A3A1f-EB %a!eR 03q662EB %a , -r_cPtjjd}d}tdD]w}|j||g}t |\}}|j|g}t ||\}}t ||z|t |t|\}}t ||yyrr r{rirYrr|rrrrs r]test_random_rightzTestQR.test_random_rightksii##D) q -A Aq6"Aa5DAq A3A1%EB %a!eR 03q6*EB %a , -r_c tjjd}d}tdD]}|j||g}t |d\}}}t t |}ttj|dd|ddkt|j|zt|t||z|dd|ft |dd|f\} } t|| t|| y)NrrrQTrrar rSrTrrrrr5rrrrWrF r{rirYrr|rrrrkrrs r]test_random_pivotingzTestQR.test_random_pivotingwsii##D) q -A Aq6"AT*GAq!DG A BFF1QR5AcrF?+ , %accAgs1v 6 %a!eQq!tW 5!Q$[FB %a , %a , -r_ctjjd}d}d}tdD]T}|j||g}t |\}}t |j |zt|t ||z|VyNrrrQrr{rir*rYrr|rrs r]test_random_tallzTestQR.test_random_tallsvii##D)  q 0A Aq6"Aa5DAq %accAgs1v 6 %a!eQ /  0r_c\tjjd}d}d}tdD]{}|j||g}t |d\}}|j|g}t ||d\} }t ||z| t |t|d\} }t | |}y)NrrrrQrrrr) r{rir*rYrr|rrrrs r]test_random_tall_leftzTestQR.test_random_tall_leftsii##D)  q -A Aq6"Aaj)DAq A3A1f-EB %a!eR 03q662EB %b! , -r_cXtjjd}d}d}tdD]y}|j||g}t |d\}}|j|g}t ||\} }t ||z| t |t|\} }t | |{yNrrrrQrrr) r{rir*rYrr|rrrrs r]test_random_tall_rightzTestQR.test_random_tall_rightsii##D)  q -A Aq6"Aaj)DAq A3A1%EB %a!eR 03q6*EB %b! , -r_c tjjd}d}d}tdD]}|j||g}t |d\}}}t t |} ttj| dd| ddkt|j|zt|t||z|dd|ft |dd|f\} } t|| t|| y) NrrrrQTrrarr r{rir*rYrr|rrrrkrrs r]test_random_tall_pivotingz TestQR.test_random_tall_pivotingsii##D)  q -A Aq6"AT*GAq!DG A BFF1QR5AcrF?+ , %accAgs1v 6 %a!eQq!tW 5!Q$[FB %a , %a , -r_crtjjd}d}d}tdD]}|j||g}t |d\}}t |j |zt|t ||z|t|j||ft|j||fyr ) rSrTrrrrrWrFrr@rs r]test_random_tall_ezTestQR.test_random_tall_esii##D)  q *A Aq6"Aaj)DAq %accAgs1v 6 %a!eQ / 1a& ) 1a& )  *r_c Xtjjd}d}d}tdD]}|j||g}t |dd\}}}t t |} ttj| dd| dd kt|j|zt|t||z|dd|ft|j||ft|j||ft |dd|fd \} } t|| t|| y) NrrrrQTrrrarr)rSrTrrrrr5rrrrWrFrr@r s r]test_random_tall_e_pivotingz"TestQR.test_random_tall_e_pivotingsii##D)  q -A Aq6"AT ;GAq!DG A BFF1QR5AcrF?+ , %accAgs1v 6 %a!eQq!tW 5 1a& ) 1a& )!Q$j1FB %a , %a , -r_ctjjd}d}d}tdD]T}|j||g}t |\}}t |j |zt|t ||z|VyNrrrrQrrs r]test_random_trapzTestQR.test_random_trapsvii##D)  q 0A Aq6"Aa5DAq %accAgs1v 6 %a!eQ /  0r_c tjjd}d}d}tdD]}|j||g}t |d\}}}t t |} ttj| dd| ddkt|j|zt|t||z|dd|ft |dd|f\} } t|| t|| y) NrrrrQTrrarrr s r]test_random_trap_pivotingz TestQR.test_random_trap_pivotingsii##D)  q -A Aq6"AT*GAq!DG A BFF1QR5AcrF?+ , %accAgs1v 6 %a!eQq!tW 5!Q$[FB %a , %a , -r_cTtjjd}d}tdD]y}|j||gd|j||gzz}t |\}}t |j j|zt|t ||z|{yNrrrQrP) rSrTrrrrrVrWrFrs r]r/zTestQR.test_random_complexsii##D) q 0A Aq6"R Aq6(:%::Aa5DAq %affhjj1nc!f = %a!eQ /  0r_ctjjd}d}tdD]}|j||gd|j||gzz}t |\}}|j|gd|j|gzz}t ||d\}}t ||z|t |t|d\}}t ||y)NrrrQrPrrrs r]test_random_complex_leftzTestQR.test_random_complex_leftsii##D) q -A Aq6"R Aq6(:%::Aa5DAq A3"SZZ_"44A1f-EB %a!eR 03q662EB %a , -r_ctjjd}d}tdD]}|j||gd|j||gzz}t |\}}|j|gd|j|gzz}t ||\}}t ||z|t |t|\}}t ||yrrrs r]test_random_complex_rightz TestQR.test_random_complex_right sii##D) q -A Aq6"R Aq6(:%::Aa5DAq A3"SZZ_"44A1%EB %a!eR 03q6*EB %a , -r_c 8tjjd}d}tdD]}|j||gd|j||gzz}t |d\}}}t t |}ttj|dd|ddkt|jj|zt|t||z|dd|ft |dd|f\} } t|| t|| y) NrrrQrPTrrar) rSrTrrrrr5rrrrVrWrFrs r]test_random_complex_pivotingz#TestQR.test_random_complex_pivotingsii##D) q -A Aq6"R Aq6(:%::AT*GAq!DG A BFF1QR5AcrF?+ , %affhjj1nc!f = %a!eQq!tW 5!Q$[FB %a , %a , -r_cgdgdgdg}t|d\}}t|j|ztdt||z|yNrzr|r}Frrsr~rs r]rzTestQR.test_check_finite#sB  9 -!%(1!!##'3q62!!a%+r_cgdgdgdg}t|d\}}t|d\}}t||t||t|d\}}t||t||t|d\}} t||t| |ttt|fdd ittt|fdd iy) Nrzr|r})lworkrsrOrr"rrQ)rrr Exception) r{r|rrrrq3r3q4r4s r] test_lworkzTestQR.test_lwork)s  9 -!4 1AQB!"a(!"a(ARB!"a(!"a(ARB!"a(!"a( iaTGQ<8iaTGQ<8r_r*rArYrFTr[c`t||}tj||f|}t||^}}} t |j ||ft |j |t |j ||ft |j |t| |rdndk(sJ|r?| \} t | j |ft | j tjt|d|^}} t |j ||ft |j |t| |rdndk(sJ|r?| \} t | j |ft | j tjt|d|^}}} t |j ||ft |j |t |j ||ft |j |t| |rdndk(sJ|r?| \} t | j |ft | j tjt|d|^\} } }} t | j ||ft | j |t | j |ft | j |t |j ||ft |j |t| |rdndk(sJ|r@| \} t | j |ft | j tjyy) Nrrrarrrrraw) rFrSr9rrr@r[reint32) r{r*rYrr[rr|rrotherrr*taus r]rJzTestQR.test_shape_dtypeAs 1I HHaV5 )!h/ 1uQWWq!f%QWWe$QWWq!f%QWWe$5z8a333 BA 1$ ' "(( +qsX6 EQWWq!f%QWWe$5z8a333 BA 1$ ' "(( +!*x@ 1uQWWq!f%QWWe$QWWq!f%QWWe$5z8a333 BA 1$ ' "(( + "158 D cASYYA'SYY&SYY%SYY&QWWq!f%QWWe$5z8a333 BA 1$ ' "(( + r_rKrLct||}tj||f}t|\}}t |tj |t |tj||ft|d\}}}t |tj |t |tj||ft |tj |t|d\}t |tj||ft|d\}}t |tj||ft |tj||ft|d\\}} }t |tj||ft | tj|ft |tj||fy)NTrrrrr*)rFrSrrrrr:) r{r*rYrr|rrrr*r-s r]rzTestQR.test_emptyusZ 1I HHaV !u12;;q>*288QF+,Q&1a2;;q>*288QF+,299Q<( _288QF+,!*%1288QF+,288QF+,15) cARXXq!f-.RXXqd^,288QF+,r_ctjd}tjd}t||\}}t|tjdtjd}tjd}t||\}}t|tjdtjd}tjd}t||\}}t|tjdy)Nrrr)rSrrr)r{r|rrrs r]test_multiply_emptyzTestQR.test_multiply_emptys HHV  HHV Aq!ABHHV,- HHV  HHV Aq!ABHHV,- HHV  HHV Aq!ABHHV,-r_N)>rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr+rrrrrr r rrrrr/rrrrr(rrrrrJrr0rr_r]rwrws, )) )--, ), )& ) ))))& )& ))))), )) )444 )--0 - - - 0 - -- *-$0 -0 - - -, 90 [[S), [[S), [[Z%7 [[Wf-.,.8--.,` [[Z)AB-C-2.r_rwcjeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd Zej"j%dgdej"j%dgdej"j%dedZej"j%dgddZy)TestRQcgdgdgdg}t|\}}t||jztdt||z|yryrrrWrFr{r|rrs r]rzTestRQ.test_simples?  9 -!u1!!acc'3q62!!a%+r_chgdgdgdg}t|\}}t|d}t||y)Nrzr|r}rr)rr)r{r|rrrs r]test_rz TestRQ.test_rs0  9 -!u1 _!!R(r_c tjjd}d}tdD]T}|j||g}t |\}}t ||j zt|t ||z|VyrrSrTrrrrrWrFr{rirYrr|rrs r]r+zTestRQ.test_randomsqii##D) q 0A Aq6"Aa5DAq %a!##gs1v 6 %a!eQ /  0r_cgdgdg}t|\}}t|j|ztdt||z|y)Nrzr|rsr4r5s r]rzTestRQ.test_simple_traprr_cddgddgddgg}t|\}}t|j|ztdt||z|yrr4r5s r]rzTestRQ.test_simple_tallsKVaVaV $!u1!!##'3q62!!a%+r_cgdgdg}t|\}}t||jztdt||z|y)Nrr|rsr4r5s r]rzTestRQ.test_simple_fats=  "!u1!!acc'3q62!!a%+r_cgdgdgdg}t|\}}t||jjzt dt||z|yr)rrrVrWrFr5s r]rzTestRQ.test_simple_complexsE < 3!u1!!affhjj.#a&9!!a%+r_ctjjd}d}d}tdD]T}|j||g}t |\}}t ||j zt|t ||z|Vyrr9r{rir*rYrr|rrs r]rzTestRQ.test_random_tallvii##D)  q 0A Aq6"Aa5DAq %a!##gs1v 6 %a!eQ /  0r_ctjjd}d}d}tdD]T}|j||g}t |\}}t ||j zt|t ||z|Vyrr9r@s r]rzTestRQ.test_random_traprAr_crtjjd}d}d}tdD]}|j||g}t |d\}}t ||j zt|t ||z|t|j||ft|j||fy)NrrrrQrr) rSrTrrrrrWrFrr@r@s r]test_random_trap_economicz TestRQ.test_random_trap_economicsii##D)  q *A Aq6"Aaj)DAq %a!##gs1v 6 %a!eQ / 1a& ) 1a& )  *r_cTtjjd}d}tdD]y}|j||gd|j||gzz}t |\}}t ||j jzt|t ||z|{yr) rSrTrrrrrVrWrFr:s r]r/zTestRQ.test_random_complexsii##D) q 0A Aq6"R Aq6(:%::Aa5DAq %a!&&(**nc!f = %a!eQ /  0r_ctjjd}d}d}tdD]}|j||gd|j||gzz}t |d\}}t ||j jzt|t ||z|t|j||ft|j||fy)NrrrrQrPrr) rSrTrrrrrVrWrFrr@r@s r]test_random_complex_economicz#TestRQ.test_random_complex_economicsii##D)  q *A Aq6"R Aq6(:%::Aaj)DAq %a!&&(**nc!f = %a!eQ / 1a& ) 1a& )  *r_cgdgdgdg}t|d\}}t||jztdt||z|yr r4r5s r]rzTestRQ.test_check_finitesB  9 -!%(1!!acc'3q62!!a%+r_r*rArYr[cpt||}tj||f|}t|\}}t |j ||ft |j ||ft |j |t |j |t|d}t |j ||ft |j |t|d\}}t |j ||ft |j |t |j ||ft |j |y)Nrrrr)rFrSr9rrr@r[)r{r*rYr[rr|rrs r]rJzTestRQ.test_shape_dtype s 1I HHaV5 )!u1QWWq!f%QWWq!f%QWWe$QWWe$ qsOQWWq!f%QWWe$!*%1QWWq!f%QWWe$QWWq!f%QWWe$r_rKrLct||}tj||f}t|\}}t |tj||ft |tj |t|d}t |tj||ft|d\}}t |tj||ft |tj||fy)Nrrr)rFrSrrrr)r{r*rYrr|rrs r]rzTestRQ.test_empty s 1I HHaV !u1288QF+,2;;q>* qsO288QF+,!*%1288QF+,288QF+,r_N)rrrrr7r+rrrrrrrDr/rGrrrrrrJrrr_r]r2r2s, ) 0, , , , 00 *0 *,  [[S), [[S), [[Wf-%.--%( [[Z)AB -C -r_r2c neZdZdZdZej jddejd dejddgfdejddejd dgfd ddejdejd gfd ejdejd ddgfd ejddejd dgfgd Z d Z dZ ej jde eejeej"gdZej jdd d gej jdddgej jdejej&ej"ej(gdZej jdddgej jdejej&ej"ej(gdZy) TestSchurct||z|jjz|||dt||jjztjt |z dd|dy)Nz&Schur decomposition does not match 'a'rrzu is not unitary)rrVrWrSrFre)r{r|trrrs r] check_schurzTestSchur.check_schur3s]A *ADt H J AFFHJJA7 2 4r_c gdgdgdg}t|\}}|j|||ddt|d\}}ttjt t |xr'tjt t ||j|||ddt||\}}|j|||ddy)Nr{ rsr|rOrsrvr*+<rrr)rrOrrSr2r=r?r)r{r|rNrtczctc2zc2s r]rzTestSchur.test_simple<s J /Qx1 Aqu59q)$BuYr]+,Mim8L1MN BU;2r?S C5u=r_zsort, expected_diaglhprQrbrhpiucoucc |dk\S)Nrur)rs r]zTestSchur.Ls AHr_cgdgdgdgdg}t||\}}}|j|||ddttj||d t d |y) Nr&rrPrQgg rQrPr@g@rer&rS @rAr*rTrU-q=rrQ)rrOrrSr5r)r{rA expected_diagr|rNrsdims r] test_sortzTestSchur.test_sortFsb "   !14( 1d Aqu59 M>Qr_c|gdgdgdgdg}ttt|dttt|dy)Nrbrcrdrg unsupportedrira)rrrrps r]test_sort_errorszTestSchur.test_sort_errorsZs3  "   ! j%?j%3r_cgdgdgdg}t|d\}}t||z|jjz|y)NrQr|rSFr)rrrVrW)r{r|rNrs r]rzTestSchur.test_check_finitebs; J /QU+1!!a%!&&(**"4a8r_rctjd|}t|\}}ttjd|\}}t |tjdt |tjd|j |j k(sJ|j |j k(sJt|d\}}}t |tjdt |tjdt |d|j |j k(sJ|j |j k(sJy)NrrrQrZrir)rSrrrFrr[r)r{rr|rNrt0z0rms r]rzTestSchur.test_emptygs HHV2 &Qx1rvvar*+B288F+,288F+,ww"(("""ww"(("""15) 1d288F+,288F+,T1ww"(("""ww"(("""r_rAoutputr[rr[ctjddgddgg}t|j|||d}|dk(r|dk(s J|dk(sJyy)N皙?rrQrArvrr]r)rSrCrrX)r{rArvr[r\rms r]test_gh_13137_sort_strz TestSchur.test_gh_13137_sort_strxs_ JJb As8, -QXXe_4?C EMtqy88tqy88yyr_ctjddgddgg}|dk(xr"|tjtjhvd fd }t |j |||d}r|dk(s J|dk(sJyy) NrxrrQr[cr9tj|rJ|tj|sJ||dzz}ntj|sJ|J|}|jdkDS)NrPr)rS iscomplexobjisrealr)rrrall_reals r]rAz1TestSchur.test_gh_13137_sort_custom..sortsi??1---}155"Hq)))y y66E> !r_ryrrarJ)rSrCr;r$rrX)r{rvr[r\rArmrs @r]test_gh_13137_sort_customz#TestSchur.test_gh_13137_sort_customs JJb As8, -6>Ge BJJ/G&G "QXXe_4?C$tqy33$!)33)yr_N)rrrrOrrrrrSr>rnrqrrdrr;rr<rr$rFrzrrr_r]rLrL1s#4> [[ 72771:+tWRWWQZ5 6 '"''!*cGBGGAJ;5 6 $WRWWQZ'"''!*5 6 '"''!*wrwwqzk45 6 wrwwqz3 TB C  E  49  [[TC GR\\#RS#T#  [[VeU^4 [[X ':; [[Wrzz2::')||R]]'DE9E<59$ [[X ':; [[Wrzz2::')||R]]'DE4E<4r_rLceZdZdZdZdZdZdZdZdZ dZ e jjd eeeeegd Zy ) TestHessenbergcgdgdgdg}gdgdgdg}t|d\}}t|j|z|z|t||d y) Nikiif"ir gbgsE@g㥛 cg(m̀gkwc@gfjWrg&S?g,eX@racalc_qr<decimalrrrWr{r|h1rmrs r]rzTestHessenberg.test_simplesX    ..!#!A&1!!##'A+q1!!R3r_cgdgdgdg}t|d\}}t|jj|z|z|y)Nr)ryf@r)y;r rrar)rrrVrWr{r|rmrs r]rz"TestHessenberg.test_simple_complexsA    !A&1!!&&(**q.1"4a8r_cgdgdgdgdgdgdgdg}t|d \}}t|j|z|z|y) N)rarQrsr<rurvr)rrQrsr<rvrrQ)rrQrQrsrrsrQ)rrrQr{rrrQ)rrsrarQrrarQ)rrarQrsrrar)rrrrrrarQrarrrs r] test_simple2zTestHessenberg.test_simple2sF " " " " " " "  $!A&1!!##'A+q1r_ctjd}d|d<t|d\}}t|j|z|z|y)NrsrQ)rrrar)rSrFrrrWrs r] test_simple3zTestHessenberg.test_simple3s> FF1I%!A&1!!##'A+q1r_ctjjd}d}tdD]A}|j||g}t |d\}}t |j |z|z|Cy)NrrrQrar)rSrTrrrrrWr{rirYrr|rmrs r]r+zTestHessenberg.test_randomsfii##D) q 6A Aq6"Aa*DAq %accAgk1 5 6r_c.tjjd}d}tdD]f}|j||gd|j||gzz}t |d\}}t |j j|z|z|hy)NrrrQrPrar)rSrTrrrrrVrWrs r]r/z"TestHessenberg.test_random_complexsii##D) q =A Aq6"R Aq6(:%::Aa*DAq %affhjj1nq&8! < =r_cgdgdgdg}gdgdgdg}t|dd \}}t|j|z|z|t||d y) NrrrrrrraF)rrr<rrrs r]rz TestHessenberg.test_check_finitesZ    ..!#!AE:1!!##'A+q1!!R3r_cddgddgg}t|d\}}t|tjdt||ddgdd gg}t|d\}}t|tjdt||y) NrQrarrRry@ry@@y(@)rrrSrF)r{r|rmrrh2rs r]test_2x2zTestHessenberg.test_2x2s~VaW !A&1!!RVVAY/!!Q'D\D%= )Aa(B!"bffQi0!"a(r_rctjd|}t|}|jdk(sJ|jttj d|jk(sJt|d\}}t|d\}}|jdk(sJ|j|jk(sJ|jdk(sJ|j|jk(sJy)NrrrsTr)rSrrr@r[rF)r{rr|rmrh3r$s r]rzTestHessenberg.test_emptys HHV2 & qMww&   ww*RVVAR%89?????!D)1Ad+Bww&   ww"(("""ww&   ww"(("""r_N)rrrrrrrr+r/rrrrrrdrr;rr<rrr_r]rrs[ 49 22 6= 4 ) [[TC)#LM #N #r_rzBuild Dependenciesblasnameversionc6eZdZdZdZdZdZdZdZdZ y) TestQZc\tjjd}d}|j||gjt}|j||gjt}t ||\}}}}t ||z|jz|dt ||z|jz|dt ||jzt|dt ||jzt|dttjt|dk\y)N90rurr) rSrTrrXr;rrrWrFrrr5 r{rirYr\rAABBQrs r]test_qz_singlezTestQZ.test_qz_single sii##E*  JJ1v  % %g . JJ1v  % %g .!Qx B1!!b&133,1=!!b&133,1=!!acc'3q61=!!acc'3q61=tBx1}%&r_ctjjd}d}|j||g}|j||g}t||\}}}}t ||z|j z|t ||z|j z|t ||j zt |t ||j zt |ttjt|dk\y)Nrrur rSrTrrrrWrFrrr5rs r]test_qz_doublezTestQZ.test_qz_double sii##E*  JJ1v  JJ1v !Qx B1!!b&133,2!!b&133,2!!acc'3q62!!acc'3q62tBx1}%&r_c4tjjd}d}|j||gd|j||gzz}|j||gd|j||gzz}t||\}}}}t ||z|j j z|t ||z|j j z|t ||j j zt|t ||j j zt|ttjt|dk\ttjt|jdk(y)NrrurPr) rSrTrrrrVrWrFrrr5rrs r]test_qz_complexzTestQZ.test_qz_complex, s)ii##E*  JJ1v CJJ1v$6!6 6 JJ1v CJJ1v$6!6 6!Qx B1!!b&1668::"5q9!!b&1668::"5q9!!affhjj.#a&9!!affhjj.#a&9tBx1}%&tBx}})*+r_ctjjd}d}|j||gd|j||gzzjt}|j||gd|j||gzzjt}t ||\}}}}t ||z|jjz|dt ||z|jjz|dt ||jjzt|dt ||jjzt|dttjt|dk\ttjt|jdk(y)NrrurPrr)rSrTrrXr<rrrVrWrFrrr5rrs r]test_qz_complex64zTestQZ.test_qz_complex649 sGii##E*  ZZA "SZZA%7"7 7 ? ? J ZZA "SZZA%7"7 7 ? ? J!Qx B1!!b&1668::"5q!D!!b&1668::"5q!D!!affhjj.#a&!D!!affhjj.#a&!DtBx1}%&tBx}})*+r_ctjjd}d}|j||g}|j||g}t||d\}}}}||z|j j z} t | j|t | jd||z|j j z} t | j|t | jdt ||j j zt|t ||j j zt|ttjt|dk\y)Nrrur)rvr) rSrTrrrVrWrr[rrFrrr5) r{rirYr\rrrrraabbs r]test_qz_double_complexzTestQZ.test_qz_double_complexF sii##E*  JJ1v  JJ1v !Qy1 B1 Vaffhjj !"''1-!"''1- Vaffhjj !"''1-!"''1-!!affhjj.#a&9!!affhjj.#a&9tBx1}%&r_ctjgdgdgdgdg}tjgdgdgdgdg}ttt||d y) N)333333@)@@Ag@333333@5@gGg@)rr Erh)皙@reGre)rPrPrSrP)rPrgr)rPr%rfrP)r rrfr&c |dk(S)Nrr)araibetas r]r`z,TestQZ.test_qz_double_sort..n s bAgr_ri) rSr4rrrrrrWr)r{r\rrrrrrms r]test_qz_double_sortzTestQZ.test_qz_double_sortV sZ HH--,,. / HH++++- . j"a1MN r_ctjjd}d}|j||g}|j||g}t||d\}}}}t ||z|j z|t ||z|j z|t ||j zt |t ||j zt |ttjt|dk\y)NrruFrrrrs r]rzTestQZ.test_check_finite sii##E*  JJ1v  JJ1v !QU3 B1!!b&133,2!!b&133,2!!acc'3q62!!acc'3q62tBx1}%&r_N) rrrrrrrrrrrr_r]rr s' ' ' , ,' 5FF 'r_rc^eZdZedZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zy ) TestOrdQZcFtjgdgdgdgdg}tjgdgdgdgdg}tjgd gd gd gd g}tjgd gdgdgdg}tjgdgdgdgdg}tjgdgdgdgdg}tjd}tjddg}tjddg} ||||| g|_||||| g|_y)N)y56yJ@@Iy@A_@y@?)yq= ףpݿQy By/@M@y%)y333333@yC@1y Q)@y )y@@y,@fffffE@y@@Gy3@@)y?y?333333?yy)y?333333yy@y333333 )y?y333333@?yy)rPy333333@yy@)rrrr[r)rrrrh)rg:@rre)rarQra)rarsr<)rarsrs)rarsrr<)rrPrr)r&r&r%r))r)r&rPr)rur&r,r))r,r'rer')r)r)r%r)rrPrere)rrPr&r)rQrra)rSr4rFr5r\r) clsA1B1A2B2A3B3A4B4A5s r]rzTestOrdQZ.setup_class s(XX$&%' ()XXDDDDFG XX/...01 XX}$$$&'XX'''')*XX)''')* VVAY WWaV_WWaV_RR$RR$r_c  tjd5t|j|jDcgc]\}}t |||}}}dddt |Scc}}w#1swYt SxYw)Nraiserri)rSrzipr\rr tuple)r{rAAiBirets r] qz_decompzTestOrdQZ.qz_decomp sj [[W % O:=dffdff:MNB5Rd+NCN OSzO OSzs$A/A)A/)A//Bc htj|j} t||jj z| t| | jj z| t||z|| zt||z|| zt tj|dtj|jt tj|dtj|jt|jdD]%} | dkDr|| | dz fdk7r| |jddz kr|| dz| fdk7r}t|| | dz| | dzf|| | dz| | dzf\} } | djdkr| ddg} || | dz|| | dzz }|djdkr|ddg}t| ||| dk(r+|| dk(r#t|| | fdt|| | fd|| dk(rt|| | fdt|| | f|| | fz || || z (t|}d}t|jdD]A} |tj|| gtj|| g}|s|rJ|}Cy)NrrrrarQT)rSrFr@rrWrVrtrilr9rr rrrr2r4)r{r\rrArralpharrrIdrevals_tmpsortfunlastsortcursorts r]checkzTestOrdQZ.check s VVQWW !!acchhj."5!!acchhj."5!!b&!a%0!!b&!a%02772r?BHHRXX,>?2772r?BHHRXX,>?qwwqz" MA1u1a!e8)288A;?"r!a%(|q'8r!AE'1QU7"23R!a%1q58H5IJq8==1$!1a&MEAa!enT!AE]2q6;;?q!f+C)%58q=T!W\ AqD1- AqD1-!W\ AqD1-'1a4AqD(958DG;KL/ M0#4(qwwqz" Abhhaz2BHHd1gY4GHG""{H  r_c|j|}t||j|jD]\}}}|j|||g|yrJ)rrr\rr)r{rArretirrs r] check_allzTestOrdQZ.check_all1 sMnnT"TVVTVV4 ,LD"b DJJr2t +d + ,r_c&|jdy)NrZrrLs r]test_lhpzTestOrdQZ.test_lhp7  ur_c&|jdy)Nr\rrLs r]test_rhpzTestOrdQZ.test_rhp: rr_c&|jdy)Nr]rrLs r]test_iuczTestOrdQZ.test_iuc= rr_c&|jdy)Nr^rrLs r]test_ouczTestOrdQZ.test_ouc@ rr_c,d}|j|y)Nctj|t}|dk7}d||<||||z jdk(||<|SNrrFrS empty_likeboolrrroutnonzeros r]rAz TestOrdQZ.test_ref..sortE L--.CAvG!CMgJqz1771.sortP rr_rrs r]test_cefzTestOrdQZ.test_cefN rr_c`t|jd|jdd}|j|jd|jddg|t|jd|jdd}|j|jd|jddg|y)NrarQrZri)r r\rr)r{rs r]test_diff_input_typeszTestOrdQZ.test_diff_input_typesY sDFF1Itvvayu5 466!9dffQi55DFF1Itvvayu5 466!9dffQi55r_ctjd}tjddg}dddgfdddgfdddgfdddgfg}tjd}tjd d g}dd d gfdd d gfdd d gfdd d gfg}tjd}tjdd g}ddtjgfddtjgfdtjdgfg} tjd} tjdd g} ddtjgfddtjgfdtjdgfg} tjd dg} tjd dg}ddtjgfddtjgfg}|||| | g}|||| |g}||| | |g}t |||D]\}}}|D]\}}t |||\}}}}}}|d k(}|d k(}tj|}tj|||z<tj|||z<||||z ||<t||y)NrQrrbrZr[r\r]r^y?y??yٿɿ?rrari) rSrFr5rr\rr rr)r{rr expected1rr expected2rr expected3rr expected4rB5 expected5r\rexpectedrr expectedisortstrexpected_eigvalsrrrazerobzerors r]test_sort_explicitzTestOrdQZ.test_sort_explicit` sVVAY WWb#Y dAY'aY'dAY'aY') VVAY WWgz* +k>:;nk:;k>:;nk:;= VVAY WWaV_c266]+c266]+bffc]+- VVAY WWb!W dBFF^,dBFF^,bffd^,. WWaV_ WWaX a[)a[)+ RR  RR y)Y J!$Q8!4 5 BI-6 5))*/BW*E'1eT1a!MM%(#%66%%- $&FF5&5.!!5&M$v,65&  0!4 5 5r_N)rrr classmethodrrrrrrrrrr r rrr_r]rr sM4%4%l ,\,   6-5r_rceZdZejj ddZejjdZy)TestOrdQZWorkspaceSizeruc*tjjd}d}tjtjfD]V}|j||fj |}|j||fj |}t ||dd}XtjtjfD]V}|j||fj |}|j||fj |}t ||dd}Xy)Nrc ||kSrJrrrs r]r`z7TestOrdQZWorkspaceSize.test_decompose.. UT\r_r[ryc ||kSrJrr"s r]r`z7TestOrdQZWorkspaceSize.test_decompose.. r#r_r) rSrTrr;r$rXr rFr<)r{rireddtyper\rrs r]test_decomposez%TestOrdQZWorkspaceSize.test_decompose sii##E* zz2::. %F Aq6"))&1A Aq6"))&1Aa!A#%A  %}}bll3 (F Aq6"))&1A Aq6"))&1Aa!A&(A (r_c~tjjd}d}tjtjtj tj fD][}|j||fj|}|j||fj|}t||d\}}}} } } ]y)Nrr r^ri) rSrTrr;r$rFr<rXr ) r{rirer%r\rSrWrrUr3s r]test_decompose_oucz)TestOrdQZWorkspaceSize.test_decompose_ouc sii##E* zz2::r}}bllK >F Aq6"))&1A Aq6"))&1A&+Aqu&= #Aq%q! >r_N) rrrrr fail_slowr&rRr*rr_r]rr sA [[1((" [[>>r_rceZdZdZy)TestDatacopiedc` ddlm}tddgddgg}t| |j }|j }G fdd}G fdd }|}|}|d f d f|d f|d f|d f|d ffD].\} } t| } t || | | t|  0y) Nr) _datacopiedrarQrsceZdZdfd Zy)-TestDatacopied.test_datacopied..Fake1NcSrJr)r{r[rr\s r] __array__z7TestDatacopied.test_datacopied..Fake1.__array__ sr_)NN)rrrr3r]sr]Fake1r1 s r_r4c(eZdZWjZy)-TestDatacopied.test_datacopied..Fake2N)rrr__array_interface__r]sr]Fake2r6 s"#"7"7 r_r8FTr)scipy.linalg._decompr/rHrCtolistrrrepr) r{r/rLM2r4r8F1F2itemstatusarrr\s @r]test_datacopiedzTestDatacopied.test_datacopied s4 QFQF# $ AJ HHJ VVX   8 8W WZ!UaY %[2u+E{D -LD&$-C S$/!%d - -r_N)rrrrCrr_r]r-r- s-r_r-ctdtj}tj|jddt }d|_t|dt|jdy ) z4Check linalg works with non-aligned memory (float32)irrQroffsetcountr[rOrOT overwrite_aN) r:rSuint8 frombufferdatar;r@r rWr|rs r]test_aligned_mem_floatrO sM s"((#A affQcAAAGtr_ppc64lezcrashes on ppc64lectdtj}tj|jddt }d|_t|dt|jdy ) z4Check linalg works with non-aligned memory (float64)i$rr<rrErHTrIN) r:rSrKrLrMrr@r rWrNs r]test_aligned_memrR sM s"((#A affQc?AAGtr_ctdtj}tj|jddt }d|_t|dt|jdy ) z>Check that complex objects don't need to be completely alignediHrr{rrErHTrIN) r9rSrKrLrMrr@r rWrNs r]test_aligned_mem_complexrT sM d"((#A affQcAAAGtr_clt|}tt|D]}|dd}t||tj s't j ||j||jjzdztj}t j|jd||j||j}||j|_ |||d<|||<||i|t||jdkDs||j||<||i|y)Nr{rr<rE.ra)r.rrercrSrEr9rr[itemsizerKrLrMr@rW)funcrhrArr|rs r]check_lapack_misalignedrX s :D 3t9  # G adBJJ '!A$))AaDJJ$7$779JBrwwq! %&qTZZ1BtzzBHdBsGAaD ! v 1Q4::"tvv!a"6" #r_z0Ticket #1152, triggers a segfault in rare cases.)runr<ctjdt}tjd}d|_tjdtj }tj |jddt}d|_tjd}t|\}}t|ftd ft|ftd ft|ftd ft|ftd ft||f|ftd ft||ftdd ft |ftd ft |ftd ft |ftd ft"|ftft"|ftd ft$|ftd ft&|ftd ft(|ftd ft*|ftd ft,|ftd ffD]\}}}t/|||y) NrOrrrHi Nr<rETrI) overwrite_b)rJr[)rSrFrr:r@rKrLrMrrr r>r r rrr rrrrrrrX) rRr(rLUpivrWrhrAs r]test_lapack_misalignedr_ s rA #AAG %rxx(A affQc?AAG  AlGB 1$. / qdDT2 3 !t- . dt4 5 S 1~t'= > QFDTtD E 1$. / 1$. / 1$. / qdDF # qdDT2 3 tTd3 4 !t- . !t- . !t5 6 QD$40 1!!4tV$ dF3%4r_cleZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZy) TestOverwritecJttdgttddgyNr)rGr rLs r]test_eigzTestOverwrite.test_eig( sC&*C&&!12r_cJttdgttddgyrc)rGrrLs r] test_eighzTestOverwrite.test_eigh, sD6(+D66"23r_c&ttdgyNr;)rGrrLs r]rzTestOverwrite.test_eig_banded0 J1r_c&ttdgyrc)rGr rLs r] test_eigvalszTestOverwrite.test_eigvals3 GfX.r_c&ttdgyrc)rGrrLs r] test_eigvalshzTestOverwrite.test_eigvalsh6 sHvh/r_c&ttdgyrh)rGrrLs r]rz!TestOverwrite.test_eigvals_banded9 sNVH5r_c&ttdgyrc)rGrrLs r]test_hessenbergzTestOverwrite.test_hessenberg< rir_c&ttdgyrc)rGrrLs r]test_lu_factorzTestOverwrite.test_lu_factor? sIx0r_cxtjgdgdgdg}t|tfddgy)Nrrr$)rr{r{ct|SrJ)r)rxlus r]r`z-TestOverwrite.test_lu_solve..E shsA&6r_)rs)rSr4rrG)r{rrvs @r] test_lu_solvezTestOverwrite.test_lu_solveB s. HHiI6 7l6?r_c&ttdgyrc)rGr rLs r]test_luzTestOverwrite.test_luG B)r_c&ttdgyrc)rGrrLs r]test_qrzTestOverwrite.test_qrJ rzr_c&ttdgyrc)rGrrLs r]test_rqzTestOverwrite.test_rqM rzr_c&ttdgyrc)rGrrLs r] test_schurzTestOverwrite.test_schurP sEF8,r_c`tddgtjtjgy)Nct|dS)Nr)rr|s r]r`z2TestOverwrite.test_schur_complex..T s eAy&9r_r)dtypes)rGrSr;r$rLs r]test_schur_complexz TestOverwrite.test_schur_complexS s!9F8$&JJ #; =r_cBttdgtddgy)Nrct|dS)NrUr)r rs r]r`z(TestOverwrite.test_svd..Y s c!7&Cr_)rGr rLs r]test_svdzTestOverwrite.test_svdW sC&*CfXNr_c&ttdgyrc)rGrrLs r] test_svdvalszTestOverwrite.test_svdvals[ rlr_N)rrrrdrfrrkrnrrqrsrwryr|r~rrrrrr_r]rara' sT342/0621@ ***-=O/r_racVtj|dftj|}tj|j }d|z}t |}t|j|dft||j|t |j}t|jdt||j||dkDr|stjjd}|j|d|jd|z}|d|j|dz|jd|zz}|j|}t |d }t|j|dft |d }t|j|d fyyy) NrQrrrar+rQraru-C6?MbP?rcondư>rv)rSrrrXrrrrr@rmeanrWrTrrU)rYr[skip_bigXrrYris r] _check_orthr_ sJ Ae$++E2A ((5/  C *C QA1a&!Aqvvxc* QSS A&!Aqvvxc*1uXii##A& HHQNSXXa^ + sxx1~%A6 6 HHUO $ QWWq!f% $ QWWq%j)ur_r{z"test only on 64-bit, else too slowc|d} t|tjdy#t$r}t d|d}~wwxYw)NiT)rz.memory error perhaps caused by orth regression)rrSr$ MemoryErrorAssertionError)rYrs r]test_orth_memory_efficiencyrz sA AArzzD1  <  s! ; 6;ctjtjtjtjg}gd}t j ||D]\}}t||y)NrarQrsrOr)rSr;r$r<rF itertoolsproductr)rr3rrYs r] test_orthr sOjj"**bllBMM BF E""651AArr_rctjd|}tjd|}t|}|jt|jk(sJ|j dk(sJyNrrrQ)rSrrFrr[r@)rr|rNoas r]test_orth_emptyr sW r"A  B aB 88tBx~~ %% % 88v  r_cTeZdZdZej j deee je e jgdZ ej j dddgej j dddgej j dd d gd Zy ) TestNullSpacectjjd}tjtjtj tj g}gd}tj||D]\}}tjd|f|}tj|j}d|z}t|} t| j||dz ft|| zd|t|j } t| jdt|j | zd||j#d|dzz|}t|} t| j||dz |dzz ft|| zd||d kDstjjd}|j%|d |j%d |z}|d |j%|dz|j%d|zz}|j'|}t|d } t| j||d z ft|d } t| j||dz fy)NrarrQrrrr+rrurrrrrv)rSrTrr;r$r<rFrrrrrr%rr@rrWrandnrUrX) r{rirr3rrYrrrrs r]test_null_spacezTestNullSpace.test_null_space sii##A&**bjj",, F"&&vu5 2EBAb)A((2,""C*C1 A 1ac( + AE13 /133A & ) ACC!GQS 1 !ad(A&A1 A 1a!eadl"3 4 AE13 /1uii++A.HHQNSXXa^3sxx1~-A>>HHRLq-QWWq!a%j1q-QWWq!a%j1; 2r_rctjd|}tjd|}t|}|jdk(sJ|j t|j k(sJyr)rSrrFr%r@r[)r{rr|rNnsas r]test_null_space_emptyz#TestNullSpace.test_null_space_empty sY HHV2 & VVAR myyF"""yyJrN00000r_rJTFrrrrUc(tjjd}d}|jd|dzz|f}t |j |||}t ||zdtj|jjdzy) Nl'YeNrOrarQ)rJrrrrr+) rSrTr=standard_normalr%rrrr[r)r{rJrrrirYrrs r]test_null_space_optionsz%TestNullSpace.test_null_space_options s{ii##$;<    QT1 . qvvx[|%2 4Aqrxx'8'<': A AOAq)288D>: A AOAq)288D>:r_c`eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZy) TestCDF2RDFc0tjd||S)Nz...ij,...jk->...ik)rSeinsum)r{r|rs r]matmulzTestCDF2RDF.matmul syy-q!44r_c\t|j|||j||yrJ)rr)r{r}rlrs r]assert_eig_validzTestCDF2RDF.assert_eig_valid s&! KK1  KK1  r_ctjd}tjdtjd}}t||\}}|j|||y)Nrr)rSrr&rr{rr}rlwrrs r]test_single_array0x0realz$TestCDF2RDF.test_single_array0x0real& sK HHV xx{BHHV,1AB b"a(r_ctjddgddgg}tjj|\}}t ||\}}|j |||y)NrarQrsrrSr4r7r r&rrs r]test_single_array2x2_realz%TestCDF2RDF.test_single_array2x2_real- sT HHq!fq"g& 'yy}}Q1AB b"a(r_ctjddgddgg}tjj|\}}t ||\}}|j |||y)NrarQrrrs r]test_single_array2x2_complexz(TestCDF2RDF.test_single_array2x2_complex3 sT HHq!fr1g& 'yy}}Q1AB b"a(r_ctjgdgdgdg}tjj|\}}t ||\}}|j |||y)Nrrrtrrs r]test_single_array3x3_realz%TestCDF2RDF.test_single_array3x3_real9 sN HHiI6 7yy}}Q1AB b"a(r_ctjgdgdgdg}tjj|\}}t ||\}}|j |||yNrr)rr<ru)rrr<rrs r]test_single_array3x3_complexz(TestCDF2RDF.test_single_array3x3_complex? sN HHiJ7 8yy}}Q1AB b"a(r_c.tddD]}tjjdtjj d||}tj j |\}}t||\}}|j|||y)Nrariɚ;r) rrSrTrrUr7r r&rr{rrr}rlrrs r]test_random_1d_stacked_arraysz)TestCDF2RDF.test_random_1d_stacked_arraysE stq! -A IINN9 % sAq)A99==#DAqQ]FB  ! !"b! ,  -r_ctddD]h}tjjdd||}tjj |\}}t ||\}}|j|||jy)NrarrO)rrSrTrUr7r r&rrs r]test_random_2d_stacked_arraysz)TestCDF2RDF.test_random_2d_stacked_arraysN sfq! -A r2q!,A99==#DAqQ]FB  ! !"b! ,  -r_ctjdtjd}}ttt ||y)Nr)rQ)rSrr4rrr&r{r}rls r]test_low_dimensionality_errorz)TestCDF2RDF.test_low_dimensionality_errorV s)xx|RXXd^1j'1a0r_ctjdtjdjdd}}ttt ||y)NrsrvrQrSr:rrrr&rs r]rz!TestCDF2RDF.test_not_square_errorZ s6yy|RYYq\11!Q71j'1a0r_ctjgdgdgdg}tjj|\}}t t t ||yrrSr4r7r rrr&r{rr}rls r]test_swapped_v_w_errorz"TestCDF2RDF.test_swapped_v_w_error_ s; HHiJ7 8yy}}Q1j'1a0r_ctjdtjdjdd}}ttt ||y)Nrsrr<rrs r]test_non_associated_errorz%TestCDF2RDF.test_non_associated_errore s6yy|RYYr]221a81j'1a0r_crtjgdgdgdg}tjj|\}}t t t ||tjgdgdgdggdgdgdgg}tjj|\}}t t t ||y)Nrrr)rQruy@rrs r]test_not_conjugate_pairsz$TestCDF2RDF.test_not_conjugate_pairsj s HHiL9 :yy}}Q1j'1a0 HH  < 0  < 0  yy}}Q1j'1a0r_N)rrrrrrrrrrrrrrrrrrr_r]rr sH5 )) ) ) ) --11 1 1 1r_r)F)rplatformsysnumpyrS numpy.testingrrrrrrrr r scipy.linalgr r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'scipy.linalg.lapackr(r)r*r+r,r-r.r/r0scipy.linalg._miscr1scipy.linalg._decomp_qzr2 scipy.statsr3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFscipy.linalg._testutilsrGscipy.sparse._sputilsrHscipy._lib._testutilsrIscipy.linalg.blasrJscipy.__config__rK ImportErrormachineIS_WASMrr^r$ REAL_DTYPESrFrRrrnrprrHrrrrTrrQxfail_on_32bitr+rXr^r`rsrwr2rLr blas_provider blas_versionrrrr-rOrRrTrXxfailr_rarrRr[intprVrrrrdrrrrrrr_r]rs 55*NNNNNNNNAAA$4#;;;;;;8(3'' <<< ' U+;8+;+;+=AU+U(-E zz2::& ,, . ~ %  4'='=Tn4n4b f$f$P ~!~!BJ$J$XM#M#^M G$;<ABrC=#;;|EEE .E .PN-N-b}4}4@Y#Y#x $#  /08@M./7 BLp'p'fG5G5T>><--6 $H$$&)3/1 1  #$uLN4N4@5/5/p*6HBHHRWW%..2?A A  UBJJNOP8B8BvB;J[1[1k_ FsNN N