K iLRdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z m Z mZmZmZmZmZmZmZmZmZmZddlmZddlmZddlmZmZmZm Z m!Z!ddl"m#Z#ddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0Z d Z2e*Z3dd Z*d Z4d Z5d Z6hdZ7GddZ8dZ9e jtjwdgZe gd?gd@gee d#dgee8dAe dBdCgdDdEgdFdGggee gdHee8dIe gd?gd@gee d#dgee8dJe dBdCgdDdEgdFdGggee gdHee8dKe gd?gd@gee d#dgdLdMggee8dNe dBdCgdDdEgdFdGggee d#dgdLdMgdLdMggee8dOe jtj}d.dPe jtj}d.e8dQe jtj}d0dRe jtj}d0e8dSe jtj}dRd0e jtj}dRe8dTe jtj}dd4e jtj}dd+h,e8dUe jtj}d4de jtj}d4d+h,gz Zgdy=)rrr8s r+get_rtolr=Us !!r->squarestrided hermitian nonsquare generalizedsize-0c,eZdZefdZdZdZy) LinalgCasectt|t||_||_||_t ||_y)z A bundle of arguments to be passed to a test case, with an identifying name, the operands a and b, and a set of tags to filter the tests N)rr&strnamer2r3 frozensettags)selfrHr2r3rJs r+__init__zLinalgCase.__init__es3  4%& dO r-cV||j|j|jy)zN Run the function `do` on this test case, expanding arguments rJN)r2r3rJ)rKdos r+checkzLinalgCase.checkps 466466 *r-c"d|jdS)Nz )rHrKs r+__repr__zLinalgCase.__repr__vstyyk++r-N)__name__ __module__ __qualname__setrLrPrTr-r+rErEds(+ $+ ,r-rEc\|tvsJd|D]}|j|hz|_|S)z^ Add the given tag (a string) to each of the cases (a list of LinalgCase objects) z Invalid tag)all_tagsrJ)tagcasescases r+ apply_tagr_zs; (?)M)?&II% & Lr-r>r?@@@r8r double_2)rbrard)rcrd@r?@y@@y@@y@@@?r cdouble_2)rhrgy?@)y?y?y?0x0rrrrCrN8x81x1nonarrayrA single_nsq_1)rarbrc single_nsq_2g@rf)rbrarc double_nsq_1 double_nsq_2 csingle_nsq_1)??@@@)y@y@"@y@@ csingle_nsq_2rzr{r|y@"y@y@ @)rhrgr| cdouble_nsq_1 cdouble_nsq_2cdouble_nsq_1_2y?y@cdouble_nsq_2_28x11 1x55x10x44x0r@hsinglehdoublehcsingley@hcdoublehempty hnonarray matrix_b_only hmatrix_1x1cg}tD]k}t|jtjs)tj |jd|jzd|jzg}|j d}nb|j jdk(r |j }nA VV[[A A$&&!dff*a$&&j9:Adii(2Aq#'99 #>@" HHdffX\A% & . .v /D E 66>A VV[[A $&&A)AGGBK7876DFFLL$556 $&&A)*226DFFLL3HIAdii*4a#'99 #>@"3#6 r-c #Kt|tjs|dfydg|jz}d|d<|jdkDrd|d<|jdkDrd |d <t j t |D]T}t|j|Dcgc]\}}t||z}}}t d |D}tj||j }|jtjjd ||}||d<|j|j}t!tj"||k(|ddj%|Dcgc]}d|z c}zf|jdk\r]|jddk(rKt'|j(} d| d<tj*j,j/|| }|df|jdk\r]|jddk(rKt'|j(} d| d<tj*j,j/|| }|df|jdk\s|jdddk(st'|j(} d| d<d| d<tj*j,j/|| }|dfWycc}}wcc}ww)z< Generate cartesian product of strides for all axes nopNrp)rprsrrprrr)rprc36K|]}tdd|ywr$)slice).0repeats r+ z$_stride_comb_iter..CsGVuT40Gsr8l>[=.stride__z%+dr)strides stride_xxx_0stride_xxx_0_xrprpstride_xxx_0_0)r&r'r(r itertoolsproducttupleziprabsemptyr0viewuint32fill __class__ralljoinlistrlib stride_tricks as_strided) x stride_setrepeatsr2r3 new_shapeslicesxijss r+_stride_comb_iterr1sr a $h!&&JJrNvvz# 2vvz 2$$eJ&78',/,ABDAqSQZB BGwGGXXiqww /   + Z3 WWQ[[ !rQw )chh7'Ca 'CDDDD 66Q;1772;!+QYYAAbE%%00A0>Bn$ $ 66Q;1772;!+QYYAAbE%%00A0>B&& & 66Q;1773B<61QYYAAbEAbE%%00A0>B&& &;'B(Ds-BK K1B;K , K8C3K -K AK c g}tD]}t|jD]f\}}t|jD]I\}}t |j dz|zdz|z|||j dhz}|j|Kh|S)Nrr?rN)rrr2r3rErHrJr)rr^r2a_labelr3b_labelrs r+_make_strided_casesrasI++DFF3 +JAw/7 + 7%dii#o&?#&E&OQRTU+/99 {+BD  * + ++ r-c0eZdZeZeefdZy)LinalgTestCasec|jD]A}|j|z|k7r|j|zr& |j|jCy#t$r.}d|d}|t j z }t||d}~wwxYw)zx Run func on each of the cases with all of the tags in require, and none of the tags in exclude zIn test case: z N) TEST_CASESrJrPrO Exception traceback format_excAssertionError)rKrequireexcluder^emsgs r+ check_caseszLinalgTestCase.check_casesus OO 1Dyy7"g-yy7" 1 477# 1 1&thd3y++--$S)q0 1sA B )BB N)rUrVrWrrrXrrYr-r+rrrsJ"%%1r-rceZdZdZdZy)LinalgSquareTestCasec0|jdhddhy)Nr>rBrCrrrrSs r+ test_sq_casesz"LinalgSquareTestCase.test_sq_casess! ("/!:  rCrBrrrSs r+test_empty_sq_casesz(LinalgSquareTestCase.test_empty_sq_casess! (H!5"/  2r-N)rUrVrWrrrYr-r+rr <2r-rceZdZdZdZy)LinalgNonsquareTestCasec0|jdhddhy)NrArBrCrrrSs r+test_nonsq_casesz(LinalgNonsquareTestCase.test_nonsq_cases! +"/!:  rCrrrSs r+test_generalized_sq_casesz9LinalgGeneralizedSquareTestCase.test_generalized_sq_casess! -!:"*  -r-c,|jhdy)N>r>rBrCrrrSs r+test_generalized_empty_sq_casesz?LinalgGeneralizedSquareTestCase.test_generalized_empty_sq_casess !DEr-N)rUrVrWpytestmarkslowrrrYr-r+rrs> [[-- [[FFr-rc|eZdZejj dZejj dZy)"LinalgGeneralizedNonsquareTestCasec0|jddhdhy)NrBrArCrrrSs r+test_generalized_nonsq_casesz?LinalgGeneralizedNonsquareTestCase.test_generalized_nonsq_cases! -!="*  -r-c,|jhdy)N>rArBrCrrrSs r+"test_generalized_empty_nonsq_caseszELinalgGeneralizedNonsquareTestCase.test_generalized_empty_nonsq_casess !GHr-N)rUrVrWrrrrrrYr-r+rrs> [[-- [[IIr-rc|eZdZejj dZejj dZy)HermitianGeneralizedTestCasec0|jddhdhy)NrBr@rCrrrSs r+test_generalized_herm_casesz8HermitianGeneralizedTestCase.test_generalized_herm_casesrr-c0|jhddhy)N>r@rBrCnonerrrSs r+!test_generalized_empty_herm_casesz>HermitianGeneralizedTestCase.test_generalized_empty_herm_casess !G"(  +r-N)rUrVrWrrrrr rYr-r+rrs< [[-- [[++r-rct|}|jdk\rHtj|j|j }t |jd|d<|St |jdS)Nrsr8r.r)rrr'rrr0r )r2rs r+identity_like_generalizedr s\ Avv{ HHQWWAGG ,!''"+&# ##r-ceZdZdZy) SolveCasescHtj||}tj|jdk(r=t ||dd}t tj||j|nt ||}t ||tt||y)Nrp).N.r) r solver'rrr r broadcast_torrr,)rKr2r3rJradotxs r+rOz SolveCases.dos} LLA  88A;  q 1a l+F3E 5;; ? G1aLE 5 )#Aq)*r-NrUrVrWrOrYr-r+rrs +r-rcjeZdZejj deeee gdZ dZ dZ dZ y) TestSolver0ctjddgddgg|}ttj||j |yNrp?r8)r'rrr rr0rKr0rs r+ test_typeszTestSolve.test_typess: HHq#ha) 7V\\!Q'--u5r-cvGddtj}tjdjddd}tjdj |}t j ||}|jdk(sJtjdjddj |}t j ||}|jdk(sJtjdjddj |}ttt j ||y) Nc eZdZy))TestSolve.test_1_d..ArraySubclassNrUrVrWrYr-r+ ArraySubclassr r-r!rnrrrrrrrt)rrrrrrrp) r'r(arangerrr rrr ValueError)rKr!r2r3results r+test_1_dzTestSolve.test_1_ds BJJ  IIaL Aq ) IIaL  m ,a#||v%%% IIaL A & + +M :a#||y((( IIaL A & + +M :j&,,15r-c Gddtj}tjdjddd}tjdjdddj |}t j ||ddddddf}t j |ddddddf|ddddddf}t||tt||tt jt j |ddddddf|ttt j ||ddddddftjdjddd}ttt j ||ttt j |dd|ddtjdj |}t j ||ddddf}t j |ddddddf|dd}t||tt||tjdjdd}ttt j ||ttt j |dd|ddttt j |ddddddf|y) Nc eZdZy),TestSolve.test_0_size..ArraySubclassNr rYr-r+r!r*r"r-r!rnrrrrprsr) r'r(r$rrr rrrr&r rr%rKr!r2r3expectedr&s r+ test_0_sizezTestSolve.test_0_sizes? BJJ  IIaL Aq ) IIaL Aq ) . .} =<<1%a1ai0a1Q3! na1Q3 l;68, 6=12 f((&,,!QqS!A#+Jj&,,1Q!QY<@ IIaL Aq )j&,,15j&,,!A!A? IIaL  m ,<<1%a1f-a1Q3! na!f568, 6=12 IIaL A &j&,,15j&,,!A!A?j&,,!QqS!A#+Br-cGddtj}tjdjddd}tjdjdddj |}t j ||ddddddf}t j ||ddddddf}t||tt||t j ||ddddddf}t j |ddddddf|ddddddf}t||tt||y) Nc eZdZy).TestSolve.test_0_size_k..ArraySubclassNr rYr-r+r!r0"r"r-r!rtrprrrrsr) r'r(r$rrr rrrr&r+s r+ test_0_size_kzTestSolve.test_0_size_k s BJJ  IIaL Aq ) IIaL Aq ) . .} =<<1%aAaCi0a1a19.68, 6=12<<1%a1ack2a1Q3! na1Q3! n=68, 6=12r-N)rUrVrWrr parametrizerr rrrr'r-r1rYr-r+rrs@ [[Wvvw&HI6J66"CB3r-rceZdZdZy)InvCasesctj|}tt||t |t t ||yr$)r invrr r rr,)rKr2r3rJa_invs r+rOz InvCases.do5s8 1 F1e,5a8 :#E1-.r-NrrYr-r+r4r43s/r-r4c^eZdZejj deeee gdZ dZ y)TestInvr0ctjddgddgg|}ttj|j |yr)r'rrr r6r0rs r+rzTestInv.test_types=s7 HHq#ha) 7VZZ]((%0r-cGddtj}tjdtjj |}t j |}t|jjtjut|j|jtt||tjdtjj |}t j |}t|jjtjut|j|jtt||y)Nc eZdZy)*TestInv.test_0_size..ArraySubclassNr rYr-r+r!r=Dr"r-r!rrprpr8rk)r'r(zerosint_rr r6rr0r%float64rrr& complex64rKr!r2ress r+r-zTestInv.test_0_sizeBs BJJ  HHYbgg . 3 3M Bjjm "**,-QWWcii( 3 ./ HHV2<< 0 5 5m Djjm ",,./QWWcii( 3 ./r-N rUrVrWrrr2rr rrrr-rYr-r+r9r9<s4 [[Wvvw&HI1J10r-r9ceZdZdZy) EigvalsCasescvtj|}tj|\}}t||yr$)r eigvalseigr)rKr2r3rJevevaluesevectorss r+rOzEigvalsCases.doUs, ^^A "JJqMB(r-NrrYr-r+rGrGSs)r-rGc^eZdZejj deeee gdZ dZ y) TestEigvalsr0c.tjddgddgg|}ttj|j |tjddgddgg|}ttj|j t |yNrprr8r)r'rrr rIr0r;rs r+rzTestEigvals.test_types\st HHq#ha) 7V^^A&,,e4 HHq#hQ( 6V^^A&,,.?.FGr-cGddtj}tjdtjj |}t j |}t|jjtjutd|jtt|tjtjdtjj |}t j |}t|jjtjutd|jtt|tjy)Nc eZdZy).TestEigvals.test_0_size..ArraySubclassNr rYr-r+r!rTer"r-r!r>r8rrprkrl)r'r(r?r@rr rIrr0r%rArrr&rBrCs r+r-zTestEigvals.test_0_sizecs BJJ  HHYbgg . 3 3M BnnQ "**,-VSYY' 3 +, HHV2<< 0 5 5m DnnQ ",,./T399% 3 +,r-NrErYr-r+rOrO[s6 [[Wvvw&HIHJH -r-rOceZdZdZy)EigCasesc @tj|}|j|j}}t t ||t j|t j|ddddfzt|jtt||y)N.rtol) r rJ eigenvalues eigenvectorsrr r'rr=r0rr,)rKr2r3rJrDr[r\s r+rOz EigCases.doxszjjm$'OOS5E5E\ q,/ <02::k3J3PTVW<3XX%k&7&78 : #L!45r-NrrYr-r+rWrWvs6r-rWc^eZdZejj deeee gdZ dZ y)TestEigr0ctjddgddgg|}tjj|\}}t |j |t |j |tjddgddgg|}tjj|\}}t |j t |t |j t |yrQ)r'rr rJrr0r;rKr0rwvs r+rzTestEig.test_typess HHq#ha) 7yy}}Q1QWWe$QWWe$ HHq#hQ( 6yy}}Q1QWW/67QWW/67r-cBGddtj}tjdtjj |}t j |\}}t|jjtjut|jjtjut|j|jtd|jtt|tjtjdtjj |}t j |\}}t|jjtjut|jjtjut|j|jtd|jtt|tjy)Nc eZdZy)*TestEig.test_0_size..ArraySubclassNr rYr-r+r!rer"r-r!r>r8rUrkrl)r'r(r?r@rr rJrr0r%rArrr&rBrKr!r2rDres_vs r+r-zTestEig.test_0_sizes@ BJJ  HHYbgg . 3 3M BZZ] U   BJJ./ "**,-QWWekk*VSYY' 1bjj)* HHV2<< 0 5 5m DZZ] U   BLL01 ",,./QWWekk*T399% 1bjj)*r-NrErYr-r+r^r^s4 [[Wvvw&HI 8J 8+r-r^c\eZdZdZej j deee e gdZ y) SVDBaseTestsFr0ctjddgddgg|}tj|}|j|j |j }}}t|j|t|jt|t|j|tj|d|j}t|jt|y)Nrprr8F compute_uvr@) r'rr svdUSVhrr0r9r@)rKr0rrDrnrorprs r+rzSVDBaseTests.test_typess HHq#ha) 7jjm55#%%b1QWWe$QWWnU34RXXu% JJqUdnn EQWWnU34r-N) rUrVrWr@rrr2rr rrrrYr-r+riris4I [[Wvvw&HI5J5r-riceZdZdZy)SVDCasesc jtj|d\}}}t|tt j |t j |ddddfzt j |t |jtt||tt||y)NF.rY) r rmrr r'rr=r0rr,)rKr2r3rJurvts r+rOz SVDCases.dos::a'1b6"**Q-"**Q-T1 2M"M+-::b>;%agg. 0 #Aq)*#B*+r-NrrYr-r+rrrrs,r-rrceZdZdZdZy)TestSVDctjd}tj|d|j\}}}t |j dt |j dt |tjdtjd}tj|d|j\}}}t |j dt |j dt |tjdy) z6 Empty input should put an identity matrix in u or vh )rtrTrkrtrtrkrt)rrtN)r'rr rmr@rreye)rKrrtrvhs r+test_empty_identityzTestSVD.test_empty_identitys HHV ::aDDNNK1bQWWf%RXXv&Qq " HHV ::aDDNNK1bQWWf%RXXv&R#r-ctjddgddgg}tj|d|j}tj |}t ||y)NrprFrk)r'rr rmr@svdvalsr)rKr s_from_svds_from_svdvalss r+ test_svdvalszTestSVD.test_svdvalssK HHq#ha) *ZZet~~N *J7r-N)rUrVrWr|rrYr-r+rwrws  $8r-rwceZdZdZy)SVDHermitianCasesc Rtj|dd\}}}t|tt j |t j |ddddfzt j |t |jd}tt j|||t jt j|jd|jtt j|||t jt j|jd|jtt j|ddddf|tt||tt||y)NFTr@.rYctt|j}|d|dc|d<|d<tjtj ||S)Nrraxes)rrangerr'conj transpose)matrs r+r@z'SVDHermitianCases.do..hermitiansJchh(D!%b48 DHd2h772<<$78 8r-r)r rmrr r'rr=r0rrrzrrsortrr,)rKr2r3rJrtrrur@s r+rOzSVDHermitianCases.dos(::a$71b6"**Q-"**Q-T1 2M"M+-::b>;%agg. 0 9 BIIa16qwwWY{H[]^]d]d8efBIIb)B-8"//"&&QSQYQYZ\Q]J^`b`h`h:ijRWWQZTrT *A.#Aq)*#B*+r-NrrYr-r+rrs,r-rceZdZdZy)TestSVDHermitianTN)rUrVrWr@rYr-r+rrsIr-rceZdZdZy) CondCasesc t|}d|vr tttj|ytj |d}t tj||d|dz ddt tj|d |d|dz ddt tj|d |d|dz ddtjj|}t tj|d t|jd jd t|jd jd zddt tj|d t|jd jd t|jd jd zddt tj|tjt|jd jd t|jd jd zddt tj|tj t|jd jd t|jd jd zddt tj|d tjt|d zjd jd t|d zjd jd zddy)NrCF)rlr).rrrr4r5rrrrprfro)rr rr condrmrr'r6rsummaxminr sqrt)rKr2r3rJcrcinvs r+rOz CondCases.dos AJ t  +v{{A 6  JJqU + KKNAfI' 2R 1  KK1 qy1W:5R 1  KK2 ' QvY 6R 1 yy}}Q KK1  FJJrN  r "SY]]2%6%:%:2%> >R 1  KK2  FJJrN  r "SY]]2%6%:%:2%> >R 1  KK266 " FJJrN  r "SY]]2%6%:%:2%> >R 1  KKBFF7 # FJJrN  r "SY]]2%6%:%:2%> >R 1  KK5 ! GGSVQYOOB'++B/4y!|((,0045 6R  1r-NrrYr-r+rrs(1r-rc jeZdZejj dddgdZejj deee e gejj dddd d d e je j gd Z d ZejjddddZdZy)TestCond is_complexFTctgdgdgdg}|r|dz}ttj|tdttj|t dttj|ddttj|dd ttj|d t j d y) NrarrprgrrrrcrzrtgUUUUUU?rprrrgUUUUU6@)rrr rr r'r)rKrAs r+test_basic_nonsvdzTestCond.test_basic_nonsvds :{J7 8 V AFKK3/3FKKC40%8FKK1-q1FKK2.4FKK5127783DEr-r0norm_ordrprrrrrctgdgdgdg|}t|}ttj||j |y)Nrrrr8)p)rr9rr rr0)rKr0rrout_types r+test_cond_dtypeszTestCond.test_cond_dtypes)s< :{J7u E!%(V[[h/55x@r-cPtjdtjdg}gd}ddg}tj||D]'\}}t t j||dkD)tj||D]\}}t j||y)Nr#Nrprrrrr4&k C)r'r?onesrrrr r)rKAsp_posp_negrrs r+ test_singularzTestCond.test_singular2shhv 0#R%%b%0 .DAq FKK1%, - .%%b%0 DAq KK1  r-z/Platform/LAPACK-dependent failure, see gh-18914)runreasoncgd}gd}tjd}tj|d<|D]Y}tj||}t t |tjt tj|[tjd}tj|d<|D]}tj||}t tj|d||vr#t |dd kDt |d d kDat tj|d t tj|d  y) N)Nrprrrrrrr#rU)rsrrrrrprrprprrrr) r'rnanr rrr&rAisnan)rKpsrrrrs r+test_nanzTestCond.test_nan@s )# GGFO&&$ !A Aq!A Jq"**- . BHHQK  ! GGI VV'  ,A Aq!A BHHQqTN #Ez!t $!t $BHHQqTN*+BHHQqTN*+ ,r-ctjjdtjjdddd}d|d<d|d<dD]}t j ||}t |dtjt |dtjttj|dttj|dy) Nr`rrrrkr)NrprrrrrrUrpr) r'randomseedrandr rrr risfinite)rKrrrs r+test_stacked_singularzTestCond.test_stacked_singular[s t IINN1aA &$$, *A Aq!A 4"&& ) 4"&& ) BKK$( ) BKK$( )  *r-N)rUrVrWrrr2rrr rrr'r rrxfailrrrYr-r+rrs [[\E4=9 F: F [[Wvvw&HI [[Z!RBrvvw)OPAQJA  [[t-.,.,0 *r-rceZdZdZy) PinvCasesctj|}t}t||||||ddt t ||y)Nrrrr pinvr rrr,rKr2r3rJa_ginvrs r+rOz PinvCases.dops@QCAv2AaXZ[#FA./r-NrrYr-r+rrks 0r-rc eZdZy)TestPinvNr rYr-r+rrxr-rceZdZdZy)PinvHermitianCasesctj|d}t}t||||||ddt t ||y)NTrrrrrrs r+rOzPinvHermitianCases.do~sCQ$/CAv2AaXZ[#FA./r-NrrYr-r+rr|s0r-rc eZdZy)TestPinvHermitianNr rYr-r+rrrr-rcxtjgdgdgdg}ttjj |dtjj |dt j td5tjj |dd dddy#1swYyxYw) Nrprrrs)rtrprp)rrrsrprrcondrYz%`rtol` and `rcond` can't be both set.)match)rrZ)r'rrr rrraisesr%)r2s r+test_pinv_rtol_argrs )Y 23A q$ qs# B / q#.///s #B00B9ceZdZdZy)DetCasesctj|}tj|}|j|j}}t |j jttfvrt |jt}nt |jt}tj|} t|tj| dt|t!j"|ztj| dt!j$|}t!j$|}|dk7} tt!j&|| dt)|| t* y)Nraxisrrp)r detslogdetsign logabsdetrr0r%rr astyperrIrrreducer'exp atleast_1drrr ) rKr2r3rJdrDrldadrKms r+rOz DetCases.dos JJqMnnQ#--2 1:   VV$4 4""6*B""7+B ^^B Axr;<Ar NHOOBR,HI MM!  ]]2  !VBFF1Q4L!,RVcT"r-NrrYr-r+rrs#r-rcdeZdZdZej j deee e gdZ dZ y)TestDetchttjdggdtttjdggtttjdggdtttjdggt ttj dggdt ftttj dggdttttj dggdtttj dggdt ftttj dggdt tttj dggdty)Nyrrp)rr rr%r rrr rSs r+ test_zerozTestDet.test_zeros&VZZ#(#.T&**seW-.7VZZ$)3/T&**tfX./9V^^cUG,sSDk:T&..3%1!45v>T&..3%1!45v>V^^dVH-sd|<T&..4&2156@T&..4&2156?r-r0cRtjddgddgg|}ttjj |j |tjj |\}}t|j t|t|j |yr)r'rrr rr0rr9)rKr0rphrs r+rzTestDet.test_typessu HHq#ha) 7RYY]]1%++U3 !!!$AQWWnU34RXXu%r-ctjdtj}tj|}t |dt |jjtjutj|}t |dt |djjtjut |djjtjutjdtj}tj|}t |dt |jjtjutj|}t |dt |djjtjut |djjtjuy)Nrkr8rarrrp) r'r?rBr rrrr0r%rfloat32rA)rKr2rDs r+r-zTestDet.test_0_sizes6 HHV2<< 0jjmS" ",,./nnQS&!A !!R\\12A !!RZZ/0 HHV2:: .jjmS" "**,-nnQS&!A !!RZZ/0A !!RZZ/0r-N) rUrVrWrrrr2rr rrrr-rYr-r+rrs< @ [[Wvvw&HI&J&1r-rceZdZdZy) LstsqCasesc0tj|}|j\}}tj|d\}}} tj ||d\} } } } |dk(rt | dk(j||kr#t|t|| t| |n t| |t| | j|| |k(r||kDrtjttj|| |z dzjd}tj|}tj|jdk(rUd|_t| j|jn-tjgj!t#| }t| |t tj$| j&tj(t t+| |t t+| |y) NFrrrrrrrpr)r'rrr rmlstsqrrrrr__array_wrap__rrrrrr% issubdtyper0floatingr,)rKr2r3rJarrrnrtrrur residualsranksv expect_residss r+rOz LstsqCases.dosjjmyy1::a'1b!'a"!=9dB 6 Q!VLLN # 6 3q!9 - q ! q !B 1 1! 45 19Q 3rvva|a/01Q6  JJ}5Mzz!}!!Q&&* #Y__m.A.ABHHRL--d1g6MI}5 ioor{{;<#Aq)*#Iq12r-NrrYr-r+rrs3r-rcdeZdZdZej j gdgddZdZy) TestLstsqctjgdgdgdgdgj}tjgd}tj||d\}}}}t |dk(tj||\}}}}t |d k(tj||d\}}}}t |d k(y) N)rrarrarbr)rrbrrrar)rarrarrrd)rrrrbrcr)rprrrrrrrrtrs)r'rTr rr)rKr2r3rrrrs r+ test_rcondzTestLstsq.test_rconds HH22224 567Q HH' ( & Q <9dA  & Q 29dA  & Q >9dA r-)rrn_rhs))rtrrrr)rrtrp)rrtrr)rtrrp)rtrrr)rtrrrrrrc\tj||zj||}tj||f}t j ||d\}}}} |dk(rt |dk(jt|j||ft|j||kDr|fnd||kDr=|dkDr8|tj||z } t|| | zjdt|t||t| jt||fy)Nrrrlrr)r'r$rrr rrrrrrrrr) rKrrrr2r3rrrrr s r+test_empty_a_bzTestLstsq.test_empty_a_bs IIa!e  $ $Q * GGQJ  & Q >9dA 6 Q!VLLN #QWWq%j)Y__1q5xdD q5UQYBFF1aL A  AE;;B;+? @T3q!9%QWWs1ayl+r-cTtjgd}tjgd}tj|tjt |gj }t td5tj||ddddy#1swYyxYw)N)rrprrrs)rg?g?g@gffffff @zIncompatible dimensionsr) r'rvstackrlenrr!rr r)rKryrs r+test_incompatible_dimsz TestLstsq.test_incompatible_dimsst HH\ " HH- . IIq"''#a&/* + - - .G H + LLAT * + + +s <BB'N) rUrVrWrrrr2rr rYr-r+rrs7  [[03 , ,+r-rdtz?bBhHiIqQefdgFDGOceZdZejdZegdZegdZegdZeeeegZ e ddgddggZ ejegggdzZ eejdejd ejd gZd Zd Zd ZdZdZdZdZej2j5eddZy)TestMatrixPowerrt)rsrrprr)rrrsrrp)rprrrsrrprrrrgGc|jj|}tt|ddzdzdzdz|jtt|ddzdzdzdz|jtt|ddzdzdzdz|j tt|ddzdzdzdz|j y)Nrrdi rrprs)rshft_1rrrrshft_0rshft_2rshft_3)rKr rshfts r+test_large_powerz TestMatrixPower.test_large_power3s ##B' 3 5 9 :DLL J 3 5 9 :DLL J 3 5 9 :DLL J 3 5 9 :DLL Jr-cd}|jD]D}||j||tk7s$||jj|Fy)Nct|d}t|t|t|j|jy)Nr)rrr r0)Mmzs r+tzz.TestMatrixPower.test_power_is_zero..tz?s0a#B 6q9 : 177 +r- rshft_allrobjectstackedrKr rrs r+test_power_is_zeroz"TestMatrixPower.test_power_is_zero>sJ , >> ,C szz"~ V|4<<&&r*+ ,r-cd}|jD]D}||j||tk7s$||jj|Fy)Nctt|d}t||t|j|jy)Nrp)rrr0)rrs r+rz-TestMatrixPower.test_power_is_one..tzJs*c1%B S ! 399 -r-r r$s r+test_power_is_onez!TestMatrixPower.test_power_is_oneIsJ . >> ,C szz"~ V|4<<&&r*+ ,r-cd}|jD]D}||j||tk7s$||jj|Fy)Nct|d}|jtk7rtnt}t ||||t |j|jy)Nrr)rr0r"r rr)rrmmuls r+rz-TestMatrixPower.test_power_is_two..tzUsBc1%B YY&06cD T#s^ , 399 -r-r r$s r+test_power_is_twoz!TestMatrixPower.test_power_is_twoTsJ . >> ,C szz"~ V|4<<&&r*+ ,r-cxd}|jD](}||jvs||j|*y)Nct|d}|jtk7rtnt}t |||t |yNr)rr0r"r rrr )rinvmatr+s r+rz3TestMatrixPower.test_power_is_minus_one..tzas;!#r*F YY&06cD VS!#> #C%3::b>" #r-c|jj|}ttt|dttt|dgy)Ng?rp)rrr TypeErrorrrKr rs r+test_exceptions_bad_powerz)TestMatrixPower.test_exceptions_bad_powerks4ll!!"%isC8isQC8r-c ttttjdg|dttttjdgdgg|dttttj d|dy)Nrprr)rtrsrr)r rrr'rr)rKr s r+test_exceptions_non_squarez*TestMatrixPower.test_exceptions_non_squarepsWk<1#r1BAFk<A3*b1I1Mk<B1GKr-fp errors don't work in wasmrc||jvry|jj|}ttt |dyr/)r1noninvrr rrr5s r+test_exceptions_not_invertiblez.TestMatrixPower.test_exceptions_not_invertibleus3   kk  $k<b9r-N)rUrVrWr'rzrrrrr!rr<blockr#r"r0r1rr%r(r,r2r6r8rrskipifrr=rYr-r+rr&sbffQiGl#Gl#Gl#G'7G4I QFQF# $Fbhh' }q()Gxrxx}hbhhsmXRXXc]CG J , , , #9 L  [[(FG:H:r-rceZdZdZy)TestEigvalshCasesc4tj|d}tj|\}}|jdt ||t |j tj|d}t ||t |j y)NLrrrYrn)r eigvalshrJrrr=r0)rKr2r3rJrKrLrMev2s r+rOzTestEigvalshCases.dosn__Q $"JJqM " G(288*<=ooa%W8BHH+=>r-NrrYr-r+rArA}s ?r-rAcjeZdZejj deeee gdZ dZ dZ dZ y) TestEigvalshr0ctjddgddgg|}tjj|}t |j t |yr)r'rr rDrr0r9)rKr0rras r+rzTestEigvalsh.test_typessF HHq#ha) 7 II  q !QWWnU34r-cXtjddgddggtj}tttj j |dtttj j |dtttj j |dyNrprr8lrongUPLOlowerupper)r'rrr r%r rDrKrs r+ test_invalidzTestEigvalsh.test_invalidsk HHq#ha) <j"))"4"4agFj"))"4"4aAj"))"4"4aAr-ctjddgddggtj}tjddgddggtj}tjddgtj}ttj}tjj |}t |||tjj |d}t |||tjj |d}t |||tjj |d }t |||tjj |d }t |||y Nrrpr8rrYrCrLlrnrt)r'rr r=r rDr)rKKloKuptgtrZras r+ test_UPLOzTestEigvalsh.test_UPLOs hhAA'ryy9hhAA'ryy9hhAwbii0 " II  s #3T* II  s  -3T* II  s  -3T* II  s  -3T* II  s  -3T*r-cGddtj}tjdtjj |}t j |}t|jjtjutd|jtt|tjtjdtjj |}t j |}t|jjtjutd|jtt|tjy)Nc eZdZy)/TestEigvalsh.test_0_size..ArraySubclassNr rYr-r+r!r[r"r-r!r>r8rUrkrl)r'r(r?r@rr rDrr0r%rArrr&rBrrCs r+r-zTestEigvalsh.test_0_sizes BJJ  HHYbgg . 3 3M Booa  "**,-VSYY' 3 +, HHV2<< 0 5 5m Dooa  "**,-T399% 3 +,r-NrUrVrWrrr2rr rrrrQrXr-rYr-r+rGrGs? [[Wvvw&HI5J5 B +,-r-rGceZdZdZy) TestEighCasesctj|}|j|j}}tj|\}}|j dt ||tt||tj|ddddftj|zt|jtj|d\} } t | |tt|| tj| ddddftj| zt|jt|y)Nrr.rYrn)rZerr_msg)r eighr[r\rJrrrr r'rr=r0repr) rKr2r3rJrDrKevcrLrMrEevc2s r+rOzTestEighCases.doskk!n//3#3#3C"JJqM " B(q# 2sD!|4rzz#F%bhh/ 1KK3' TC)q$ 3T1 5 48HH%bhh/a Br-NrrYr-r+r^r^sBr-r^cjeZdZejj deeee gdZ dZ dZ dZ y)TestEighr0ctjddgddgg|}tjj|\}}t |j t |t |j |yr)r'rr rarr0r9r`s r+rzTestEigh.test_typessV HHq#ha) 7yy~~a 1QWWnU34QWWe$r-cXtjddgddggtj}tttj j |dtttj j |dtttj j |dyrJ)r'rrr r%r rarPs r+rQzTestEigh.test_invalidse HHq#ha) <j"))..!'Bj"))..!W=j"))..!W=r-c tjddgddggtj}tjddgddggtj}tjddgtj}ttj}tjj |\}}t |||tjj |d\}}t |||tjj |d\}}t |||tjj |d \}}t |||tjj |d \}}t |||yrS)r'rr r=r rar)rKrUrVrWrZrarbs r+rXzTestEigh.test_UPLOs&hhAA'ryy9hhAA'ryy9hhAwbii0 "yy~~c"13T*yy~~c~,13T*yy~~c~,13T*yy~~c~,13T*yy~~c~,13T*r-cBGddtj}tjdtjj |}t j |\}}t|jjtjut|jjtjut|j|jtd|jtt|tjtjdtjj |}t j |\}}t|jjtjut|jjtjut|j|jtd|jtt|tjy)Nc eZdZy)+TestEigh.test_0_size..ArraySubclassNr rYr-r+r!rlr"r-r!r>r8rUrkrl)r'r(r?r@rr rarr0r%rArrr&rBrrfs r+r-zTestEigh.test_0_sizes@ BJJ  HHYbgg . 3 3M B[[^ U   BJJ./ "**,-QWWekk*VSYY' 1bjj)* HHV2<< 0 5 5m D[[^ U   BLL01 "**,-QWWekk*T399% 1bjj)*r-Nr\rYr-r+rfrfs> [[Wvvw&HI%J% > +,+r-rfc$eZdZdZdZedZy) _TestNormBaseNc$t|jjtjr+t |j|j jytt|jjtjyr$) issubclassr0r%r'inexactrrealrr)rrDs r+ check_dtypez_TestNormBase.check_dtypesK aggllBJJ / AFFLL 1 Jsyy~~r{{; ?Er-ctjgd}tjd}tjd}||z}|D]}|j|}t |tj }|j ||t|dt5}|jtdt |d}|j ||t|ddddt |d}|j ||t|dt |d }|j ||t|d t |d}|j ||t||jjd |jjd zt |d }|j ||t||jjd |jjd zt |tj }|j ||t|dy#1swYXxYw)Nr AllIntegerAllFloatrdivide by zero encounteredrrrrrprbrrtg?ra) r'r typecodesrrr rsrr"filterRuntimeWarningr0r% rKr2 exact_types inexact_types all_types each_typeatansups r+test_vector_return_typez(_TestNormGeneral.test_vector_return_type's HHY ll<0  Z0 -/ " )I)$Bb266'"B   R $ C ("$ - >+GH"b\  R(#B,  - b!B   R $ A &b!B   R $ C (b!B   R $ BHHMM#$6 i8P$P Qb!B   R $ BHHMM#$6 i8P$P Qb"&&!B   R $ C (? ) - -s AH44H> cgd}gd}gd}fd}|||fD] }|| t|jt|jt|jfD] }|| y)N)rprrrsrt)rrrr)rrrrrtcvtjjt|djtjjt|t djtjjt|t djtjjt|ddjtjjt|ddjtjjt|d djtjjt|d d jtjjt|d d jy)Ng6ҭ@r/rdrarp$@rgQ?rrrgsc?rrt)r'testingrrrtr )rbrKs r+_testz+_TestNormGeneral.test_vector.._testUsD JJ * *47I3788 + = JJ * *43<3788 + = JJ * *4C4=#3788 + = JJ * *41:t3788 + = JJ * *42; 3788 + = JJ * *41:y3788 + = JJ * *42;9M3788 + = JJ * *41:q3788 + =r-r8)rr )rKr2r3rrrbs` r+ test_vectorz_TestNormGeneral.test_vectorPsx    =$Q A !H )5$''+B)+ A !H r-c tgdgdg|j}ddddddtjtj fD]}t |j dDcgc]}t |dd|f| }}tt ||d |t |j dDcgc]}t ||ddf| }}tt ||d |tjdd |jjddd }|j}dd dddtjtj dfD]}tjt | |dD]}|\} } | dkr| |z } | dkr| |z } | | k(rttt ||| :t ||| } || | zz } | | krEt |j | Dcgc]#}t |ddj|| | %} }nNt |j | Dcgc]-}t |ddj|| j | /} }t| | ycc}wcc}wcc}wcc}w)Nrrtrrr8rrrprrrsordrrrtrrr)rr r'r rrrrr$rrr combinationsr r%taker)rKrorderk expected0 expected1Bndrrow_axiscol_axisrk_indexr,s r+ test_axisz_TestNormGeneral.test_axisnsc 9i( 8B1aBFFRVVG< GE;@;LMaa1g51MIM QE :I F;@;LMaa1g51MIM QE :I F  G IIa477 + 3 3Aq! < VVB2q"&&266'5A 5E!..ubS"~qA 5%)"(a<NHa<NHx'!*dA5tLQE5A!Hx$78G(*-217773C-D$F()%)117)C$O$F$F.317773C-D$F()%)117)C)E)E5$Q$F$F'84) 5 5NM,$F$Fs"I-1I2"(I7'2I<c ttjdd|jjddd}d}d}t |dd }t |ddd }t tj |||jdd d }t|j|k(|j|j|ddddddddtjtj fD]}t|jD]}t ||| }t |||d }t tj |||j|| t|j}d||<t|}t|j|k(|j|j|||dddddtjtj ddf D]}tj t|jdD]}t ||| }t |||d }t tj |||j|| t|j}d||d<d||d<t|}t|j|k(|j|j|||y)Nrprr8rrrsrtzorder {0}, axis = {1}z;Shape mismatch found {0}, expected {1}, order={2}, axis={3}rT)rrkeepdims)r`)rprprprrrrnuc)r'r$r rrrsqueezeformatrrr rrrrr permutations) rKr allclose_err shape_errr,foundexpected_shaperrs r+ test_keepdimsz_TestNormGeneral.test_keepdimssy IIa477 + 3 3Aq! <. Q t$/QDtd; 5)8 , 3 3D$ ? A" ~-  ndDI KB1aBFFRVVG< QE166] Qu15QEDA 5 18(4(;(;E1(EG!%agg$%q!!&~!6 ~5!((neQOQ Q QB2q"&&266'5%H QE++E!&&M1= Qu15QEDA 5 18(4(;(;E1(EG!%agg'(qt$'(qt$!&~!6 ~5!((neQOQ Q Qr-N)rUrVrWryrrrrrYr-r+rwrw sF ')R<#5J(Qr-rwcBeZdZejZdZdZdZdZdZ y) _TestNorm2Dcftt|jgg|jdy)Nr8r)rrrr rSs r+test_matrix_emptyz_TestNorm2D.test_matrix_emptys$T$**bT*9:C@r-c |jgdgdg}tjd}d}||z}|D]}|j|}t |tj }|j ||t|dt5}|jtdt |d}|j ||t|ddddt |d }|j ||t|dt |d }|j ||t|d t |d }|j ||t|dt |tj }|j ||t|dt |d }|j ||t|dt |d}|j ||tjj|ddy#1swY.xYw)Nrr>r{fdFDrbr}rrarprrgLXz?rrrgU&,t=@rr) rr'r~rrr rsrr"rrrrs r+test_matrix_return_typez#_TestNorm2D.test_matrix_return_types JJ 9- .ll<0  -/ "% NI)$Bb266'"B   R $ C ("$ - >+GH"b\  R(#B,  - b!B   R $ C (b!B   R $ $4 5b"B   R $ C (b"&&!B   R $ C (b%B   R $ C (b%B   R $ JJ * *2/A1 * MK% N - -s AG99H cj|jddgddgg|j}tt|dtt|ddtt|dd tt|td tt|t d tt|dd tt|d d tt|ddtt|ddt t t|dt t t|dt t t|dy)Nrprsrrr8gT"@rrrg(@rdrrfrrgW?"@rgїʄ?nofrorr)rr rrr r r%rKrs r+test_matrix_2x2z_TestNorm2D.test_matrix_2x2s JJAA'twwJ 7DGY/DENI6DEND1DCL$/DSDM3/DAJ-DBK-DAJ(:;DBK)<=j$73j$2.j$1-r-cd|jgdgdgdg|jz}tt|dtt|ddtt|dd tt|td tt|t d tt|d d tt|ddtt|ddtt|ddy)Ng?r)rrr)rsrrrpr8grj=Q0?rrgB+pc?g?g333333?rprarg?rrg&.d?rgܸՠ?)rr rrr rs r+test_matrix_3x3z_TestNorm2D.test_matrix_3x3 s  JJ 9i8J H IDG%9:DEN,@ADEN,>?DCL#.DSDM3/DAJ,DBK-DAJ(;<DBK)<=r-c|jgdgdg|j}tjdd|jj ddd}t t t|d d t t t|d d t t tddgd dt t tddgd dt t tddgd dd D]G}t t t||dt t t||dt t t||dIt tt|ddt tt|ddt t t|ddy)Nrrr8rprrrrsrtrrrtestrrsrU)rprrrrrsrrprr) rr r'r$rr r%rr)rKrrrs r+ test_bad_argsz_TestNorm2D.test_bad_argss JJ 9-TWWJ = IIa477 + 3 3Aq! < j$5!4j$5!4j$At<j$At<j$A= >E *dAud ; *dAuf = *dAuf = > iq$2iq$7j$4;r-N) rUrVrWr'rrrrrrrYr-r+rrs) HHEA1Nf. >"  0 t$ / 0 0 0s "E::Fctdttjddtdttjddtdttj ddtjd}d|d<td t|dd |d<tdt|dd td t|dd y)NrtTrrpryrrrrsg:0yE>g|"BE>)r@rg;䡈E>)rrr'rzrr?)rKrs r+test_symmetric_rankz"TestMatrixRank.test_symmetric_ranksQ BFF1I>?Q BGGFOtDEQ BHHV$4EF FF1I& Q A67& Q A7CDQ A7CDr-N)rUrVrWrrrYr-r+rrqs 02 Er-rcBtjjd}tdD]r}|j d}|dddf|dddfz|dddf<t t |d|ddd f|ddd fz|ddd f<t t |d ty) Ni3r)(rsizerprrrrrtrrsrn)r'r RandomStaternormalrr)rngiXs r+test_reduced_rankrs ))   )C 3Z( JJHJ %AqD'AadG#!Q$[^Q'AqD'AadG#!Q$[^Q'(r-c eZdZejZdZejjddggddZ dZ dZ dZ ejjd gd ejjd gd ejjd ejejejej gdZy)TestQRct|}|j}|j\}}t||}t j |d}|j |j} }t|j|k(t| j|k(tt||tt| |t|j||fk(t| j||fk(tt|| |tt|jj|tj|ttj | | t j |d\} } t| j|k(t| j|k(tt| |tt| |t| j||fk(t| j||fk(tt| | |tt| jj| tj|ttj | | t j |d} t| j|k(tt| |t| | y)Ncompletemodereducedr )r%r0rrr qrQRrr&rrrrr'rztriu) rKr2a_typea_dtyperrrrDrrq1r1r2s r+check_qrzTestQR.check_qrsa''ww1 1Iii +uucee17"#7"# 1f%& 1f%&Aq6!"Aq6!"C1Iq)C A.q :BGGAJ*19-BG#$G#$ 2v&' 2v&'QF"#QF"#CBK+C R0"&&)<BGGBK,YYqs #G#$ 2v&'B#r-rr)rsrrrkct||}tj||f}|j|tjj |d\}}t |jtjt |jtjt |j||ft |j|fy)Nrawr) rr'rrr rrr0r r)rKrrrr2htaus r+ test_qr_emptyzTestQR.test_qr_emptys 1I HHaV  aae,3QWWbii(SYY *QWWq!f%SYY%r-c|jddgddgddggtj}tj|d \}}t |j tjk(t |j tjk(t |jd k(t |jd k(tj|jd \}}t |j tjk(t |j tjk(t |jd k(t |jd k(y) Nrprrrsrtrrr8rrrrr) rr'r r rrr0rr)rKr2rr s r+ test_mode_rawzTestQR.test_mode_raws JJAAA/ryyJ A15)3299$% RYY&'6!" T!"133U+3299$% RYY&'6!" T!"r-c|jddgddgg}|jddgddgddgg}dD]a}|j|}|j|}|j||j||j|jcdD]m}dd|j|zz}dd|j|zz}|j||j||j|joy) Nrprrrsrtrrfd?)rrrr)rKr2r3r m1m2s r+test_mode_all_but_economicz!TestQR.test_mode_all_but_economics JJAA' ( JJAAA/ 0 B"B"B MM"  MM"  MM"$$    BR!((2,&&BR!((2,&&B MM"  MM"  MM"$$   r-c t|}|j}|jdd\}}t||}t j |d\}}t |j|k(t |j|k(t t||t t||t |jdd||fk(t |jdd||fk(tt|||tj|jd} tj| |jdd|jdfdzz} ttt|ddj|| ttj|dddddf|t j |d\} } t | j|k(t | j|k(t t| |t t| |t | jdd||fk(t | jdd||fk(tt| | |tj| jd} tj| | jdd| jdfdzz} ttt| ddj| | ttj| dddddf| t j |d} t | j|k(t t| |t| | y) Nrrrrrr.rr )r%r0rrr rrr&rr r'r rrrr)rKr2rrrrrqr I_mat stack_I_matrrrs r+check_qr_stackedzTestQR.check_qr_stacked sa''wwrs|1 1Iyy,17"#7"# 1f%& 1f%& A&' A&'F1aL!, AGGBK(ooe  ~'99; F8Ar2#6#;#;#=qA;OBGGAc1aiL11519-BG#$G#$ 2v&' 2v&' !Q'( !Q'(F2rNA. BHHRL)ooe" "!(;;= F8BB#7#<#<#>C' )BGGBsAqyM2B7YYqs #G#$ 2v&'B#r-r))rsrt)rtrsryrr outer_size)r#r)rrrsrtr c"tjjd}|j||zj |}|j||zj |}|j ||j |d|zzy)N{rr)r'r default_rngrrr)rKrrr rrrs r+test_stacked_inputszTestQR.test_stacked_inputs7s|ii##C( JJJ-J . 5 5b 9 JJJ-J . 5 5b 9 a  a#'k*r-N)rUrVrWr'rrrrr2r r rrrr rrrrYr-r+rrs HHE%$N [[c3Z* &  &#, "+$Z [[V& [[\,!" [[T 299 BJJ$ !+!"+r-rc8eZdZejj dgdejj dejejejejfejj dddgdZ dZ d Z y ) TestCholeskyr)rr#rsrs)2r )rsrrr0rOFTc ^tjjdtjj|}tj|tj r"|dtjj|zz}t tt|}d|ddtj|j|j|}tj||}tjj||}|r4tj|j|j|}n3tj||j|j}d|jdztj |j"z}t%||||d |d |d | tj&|dd } t)tj*tj,| t)tj*| dk\y)Nrpr)rrrr8rOir  )atolr`r)axis1axis2)r'rrrandnrcomplexfloatingrrr r rrrr choleskyrfinfoepsrdiagonalrrisreal) rKrr0rOr2trr3r%rs r+test_basic_propertyz TestCholesky.test_basic_propertyJs q IIOOU # == 2 2 3B%000A s5z" #"# IIakk!n))+Q / JJq & II  q  .  !++a.--/3A !Q[[^0023AQWWQZ"((5/"5"5514E7!E7"QCr!1MN KK2 .ryy|$%qAvr-c"Gddtj}tjdtjj |}t j |}t|j|jt|jjtjutt|tjtjdtjj |}t j |}t|j|jt|jjtjutt|tjy)Nc eZdZy)/TestCholesky.test_0_size..ArraySubclassNr rYr-r+r!r3or"r-r!r>r8)rprr)r'r(r?r@rr r*rrrr0r%rAr&rBrCs r+r-zTestCholesky.test_0_sizens BJJ  HHYbgg . 3 3M Booa QWWcii( "**,- 3 +, HHYbll 3 8 8 Gooa QWWcii( ",,./ 3 +,r-c:tjddgddgg}ttj|tj|dttj|dtj|j j y)Ny?yy@y@Fr"T)r'rrr r*rr)rKr2s r+test_upper_lower_argz!TestCholesky.test_upper_lower_arg~sn HHvv&(89 :V__Q'%)HI OOAT * OOA  % % ' r-N)rUrVrWrrr2r'rrArBrr0r-r5rYr-r+rrHs [[@ [["**bjj",, F [[%    8-  r-rcfeZdZejdZejdZejgdgdgdgZe ejjeeee e d5ejjeddejfedddy#1swYyxYw) TestOuterrsrr)rrrrtz$Input arrays must be one-dimensionalN)rUrVrWr'r$arr1arr2rr,rr outerr!r%newaxisrYr-r+r7r7s 299Q>& !Y . KK5 6 /I ^ $1 /01   # HHR\\ " # $*c!f4#  $sBE((E.AF+$E+*E+. F(9+F('F(+ G!4"GG!zCannot start subprocessc,ddg}tjd}|D]v}|jdd|}tjt j d|g|jdd|}tjt j d|gxy) NzPyQt5.QtWidgetsIPythonz import sys {before} try: import {bad_lib} except ImportError: sys.exit(0) {after} x = np.ones(2, dtype=np.float32) sys.exit(0 if np.allclose(x.dot(x), 2.0) else 1) zimport numpy as np)beforeafterbad_libz-c)rhrgri)textwrapdedentr subprocess check_callr@ executable)bad_libstemplatericodes r+test_sdot_bug_8577rrs"9-H   H<&:"'.0s~~tT:;%9"'.0s~~tT:;.>v.F-GHr-N)rUrVrWr{r}rrrrrrrrrrYr-r+rtrts<K=M<<< :/ 9=<Ir-rtc2eZdZejj dejddfejddfgdZejj ddd gd Z ejj d d d gdZ dZ y) TestTensorinvzarr, indrtrrnrrrrrsrsrrrpcztt5tj||dddy#1swYyxYw)Nind)r rr tensorinv)rKrrs r+test_non_square_handlingz&TestTensorinv.test_non_square_handlings1 ; ' +   Sc * + + +s1:z shape, ind)rtrrnrsrr)rnrsrpctjd}||_tj||}|j|d|jd|z}|j}t ||y)Nrr2r)r'rzrr rr)rKrrr2ainvr,actuals r+test_tensorinv_shapez"TestTensorinv.test_tensorinv_shapes[ FF2J!-7734=1774C=0VX&r-rrrctjd}d|_tt5t j ||dddy#1swYyxYw)Nrrr)r'rzrr r%r r)rKrr2s r+test_tensorinv_ind_limitz&TestTensorinv.test_tensorinv_ind_limitsE FF2J : & +   qc * + + +s A  Actjd}d|_tj|d}tj d}t tj||dtjj||y)Nrrrpr) r'rzrr rrr tensordot tensorsolve)rKr2rr3s r+test_tensorinv_resultz#TestTensorinv.test_tensorinv_results] FF2Jq) GGBK T1a0"))2G2G12MNr-N) rUrVrWrrr2r'rrrrrrYr-r+rrs [[Z  "  Q*  +  + [[\,  '  ' [[U 2%  + + Or-rceZdZejj dejddfejddfgdZejj dgdd Z y) TestTensorsolveza, axesrNrrrrctt5tj|jdd}t j |||dddy#1swYyxYwNrrr)r rr'rrr r)rKr2rr3s r+rz(TestTensorsolve.test_non_square_handlingsK ; ' 0 $A   q!$ / 0 0 0s ;AAr))rrrsr)rsrtrtrs)rrsrsrc *tjj|}tj|jdd}tj j ||}ttj||t|j|yr) r'rr(rrr rrrr )rKrr2r3rs r+test_tensorsolve_resultz'TestTensorsolve.test_tensorsolve_resultsc IIOOU # GGAGGBQK  II ! !!Q ' QAGG =qAr-) rUrVrWrrr2r'rrrrYr-r+rrsz [[Y  %  V$)  0  0  [[W/BBr-rctjddgddggd}ttd5t j |dddy#1swYyxYw)Nrprrrrfloat16r8zunsupported in linalg)r'rr!r4r r*)rs r+test_unsupported_commontypersK ((QGaV$I 6C Y(? @s A  Az,Bad memory reports lead to OOM in ci testingcd}tjd|gtj}tjddgtj}d|d<tj||}t |ddy)Nrpr8)rr)r'r?rrrr)rr2r3rs r+test_blas64_dotrs] A !Qrzz*A Abjj)AAeH q! A51r-z*Numpy not compiled with 64-bit BLAS/LAPACKc tj}tjjj}d}d}|}tj ddg|}tj dg|}tj dg|}|||||||dd}t |ddt |d|t |d|t|j} td | cxkxr d kycy) Nlrpr8rrinforrrl) r'rAr rYdgeqrfr?rritemr) r0lapack_routinerrldar2workr resultslworks r+!test_blas64_geqrf_lwork_smoketestrs JJEYY**11NAA C !Qu%A 88QCu %D ((A3e $CQ1c3b! HHQ RYY**1!*4a8RYY**1!*4a8RYY**1"&&*91= >r-)rr)__doc__rrPrlr@rj threadingrrnumpyr'rrrrrrr r r r r rr numpy._corernumpy.exceptionsr numpy.linalgrrrrrnumpy.linalg._linalgr numpy.testingrrrrrrrrr r!r"numpy.linalg.lapack_lite ImportErrorr,r1r9r;r=r[rEr_rrrrrrrrrrrrrrrr rrr4r9rGrOrWr^rirrrwrrrrrrrrrrrrrrr2r0rrArGr^rfrnrwrrrrrrrrrrrrrr7rIr?rM active_countrcrrrrtrrrrTrrrrrrrrrrrrr)rs0r+rs    !&PP>     #*.95 7   ,,, t 8xr2hR)8b"XV,.xr2hR)8b"XV,.zr2hR)8lL1@Byw'&&)9:'Jgw'w79yw'&&)9:'Jgw'w79{w'&&)9:'J02JKSZ[]urxxf-rxxF+J uyy~~a#yy~~a "uyy~~a#yy~~a "zAA1v;   F;~lL1@b"XV,.~r2hR2r(36B\02~lL1@b"XV,.~r2hR2r(36B\02/1LMU\^gw'w79g&'(:Wg22n222 Fn F I I +> +$ +%'F +H3 H3V/#%D/0h0.)')H)-,-66#%D6!+h!+H 5 5,#%D,8h 8,,)+G,((,+1$&E+1\M*yM*` 0$'/2 0 y 0*,H0 *  /##%D#*'1h'1T3%'>3<.+ .+b5HI IJS:S:KS:l ?)+G ?3-3-lB%'CB.8+8+v = =[Q}[Q|u<-u<?iJ   h Jsff$ f! f!