4Xz2ddlZddlZddlZddlmZmZmZmZm Z m Z m Z m Z dZ ejgdZeee eZGddZGddZd ZdS) N)assert_ assert_equalassert_array_equalassert_almost_equal assert_raisessuppress_warningsassert_raises_regexassert_allclose abcdefghij) rr r rrr ceZdZdZdZdZejd1dZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ e!j"#dej$dej$d zd!Z%d"Z&d#Z'd2d%Z(d&Z)d'Z*d(Z+d)Z,d*Z-d+Z.d,Z/d-Z0d.Z1d/Z2d0Z3d$S)3 TestEinsumc x dD]}tttj|tttjd|tttjdd|tttjddd|tttjddd|tttjddd | tttjddd | tttjddd| tttjgdRd|itttjddd|tttjdddgdg|tttjddg|tttjdd|tttjdddg|tttjdd|tttjdddg|tttjdd|tttjdddg|tttjdddg|tttjdddg|tttjdddg|tttjdddg|tttjdddg|tttjdddg|tttjdddg|tttjdddg|tttjdddgddgg|tttjd tjd!d"d#|tttjd$tjd!d"d#|tttjdtjd!d"d#|tttjd%dd&gdd&ggtjd'd"d"|ttd(5tjd)}tjd*}tjd+||dddn #1swxYwYtttjd%tjd!d,d&|d-.dS)/NTFoptimizertest)outrWorderrblah)castingr bad_data_type)dtyper)bad_argr)?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNr,iijz...izi...jzi...zij...zi..z.i...zj->..jzj->.j...zi%...z...j$zi->&zi->ijzij->jijiirr r ii->izi->irz'b')r r rrr)r rrz aabcb,abcd)rr) r ValueErrornpeinsum TypeErrorarangereshaper ones)selfdo_optabs p/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib64/python3.11/site-packages/numpy/core/tests/test_einsum.pytest_einsum_errorszTestEinsum.test_einsum_errorss#R 6R 6F *bi& A A A A *bif E E E E )RY1v F F F F )RYA6#) + + + + *biQc#) + + + + *biQ#) + + + + )RYA_#) + + + + )RYAq#) + + + + )RY M M M Mf M M M *biQF K K K K *bia!qc#) + + + + *biqcF K K K K *bia& I I I I *bi1v O O O O *biV L L L L *bi1a&6 R R R R *biV L L L L *bi1a&6 R R R R *biA P P P P *bi1a&6 R R R R *biAq6F S S S S *biaVf U U U U *bi1a&6 R R R R *bi1a&6 R R R R *bi!Q& Q Q Q Q *bi1a&6 R R R R *biaVaV.CustomExceptionN)__name__ __module__ __qualname__r5CustomExceptionr9ks Dr>r?c6eZdZdZfdZdZfdZdZdS):TestEinsum.test_einsum_object_errors..DestructoBoxc"||_||_dSN_val _destruct)r1valuedestructs r5__init__zCTestEinsum.test_einsum_object_errors..DestructoBox.__init__ps! !)r>cN|j|jz}||jkr||_|SrCrDr1othertmpr?s r5__add__zBTestEinsum.test_einsum_object_errors..DestructoBox.__add__t0i%*,$.(()) #DIKr>c<|dkr|S||SNr)rNr1rLs r5__radd__zCTestEinsum.test_einsum_object_errors..DestructoBox.__radd__|"A::K<<...r>cN|j|jz}||jkr||_|SrCrDrKs r5__mul__zBTestEinsum.test_einsum_object_errors..DestructoBox.__mul__rOr>c<|dkr|S||SrQ)rVrRs r5__rmul__zCTestEinsum.test_einsum_object_errors..DestructoBox.__rmul__rTr>N)r:r;r<rIrNrSrVrX)r?sr5 DestructoBoxrAnst * * *      / / /       / / / / /r>rYc(g|]}|dS)rr=.0r#rYs r5 z8TestEinsum.test_einsum_object_errors..s%???Qll1a((???r>r' objectr r zij->ic(g|]}|dS)dr=r[s r5r]z8TestEinsum.test_einsum_object_errors..s%AAAqll1c**AAAr>rz i...k->...c(g|]}|dS)7r=r[s r5r]z8TestEinsum.test_einsum_object_errors..s%???all1b))???r>rij, jzij, jhzij->) Exceptionr+arrayranger/rr,)r1r3r4r?rYs @@r5test_einsum_object_errorsz$TestEinsum.test_einsum_object_errorsgs     i    / / / / / / / / / /D H????%2,,???# % % %%,WQ]]  ory'1=== HAAAAE!RLLAAA# % % %%,WQ1%5%5 ory,BBB H????5A;;???# % % %ory'1a@@@ ory(AqAAA ory&!<<<<c ,dD ]}tjdd_tjd|}t |jutjt g|}t |jutjd|}t |jut|tjddg|}t |jut|tjd|}t |jd d jd <tjd|}t |jd  tjdd_tjd |}t |jut|j tjddg|}t |jut|j tjd d _tjd|}t |jut|fdtdDtjddgdg|}t |jut|fdtdDtjdd_tjd|}t |jut|dDtjt ddgt dg|}t |jut|dDtjd|}t |jut|d dddDtjddt gt dg|}t |jut|d dddDtjd|}t |jut|fdtdDtjt ddgdt g|}t |jut|fdtdDtjd|}t |jut|fdtdDtjgd ddg|}t |jut|fd!tdDtjd"|}t |jut|fd#tdDtjddt gdt g|}t |jut|fd$tdDtjd%|}t |jut|fd&tdDtjdt dgdt g|}t |jut|fd'tdDtjd(|}t |jut|d) dddDtjdt dgt dg|}t |jut|d* dddDtjdd_tjd+|}t |jut|fd,tdDtjgd-dg|}t |jut|fd.tdDtjd/d0_tjd1|}t |jut| ddtjgd2gd3|}t |jut| dd dS)4Nrrr r z...rr$rr' WRITEABLEFji )r r r&c$g|] }||f Sr=r=r\r#r3s r5r]z0TestEinsum.test_einsum_views..!777Qq!tW777r>r c$g|] }||f Sr=r=rqs r5r]z0TestEinsum.test_einsum_views..rrr>rc)r r r z ...ii->...icFg|]fdtdDS)c$g|] }||f Sr=r=r\r#xs r5r]z;TestEinsum.test_einsum_views...!888!a1g888r>r rir\rws @r5r]z0TestEinsum.test_einsum_views..4DDDQ8888uQxx888DDDr>cFg|]fdtdDS)c$g|] }||f Sr=r=rvs r5r]z;TestEinsum.test_einsum_views...rxr>r ryrzs @r5r]z0TestEinsum.test_einsum_views..r{r>z ii...->...icFg|]fdtdDS)c$g|] }||f Sr=r=rvs r5r]z;TestEinsum.test_einsum_views...rxr>r ryrzs @r5r]z0TestEinsum.test_einsum_views..C<<r cFg|]fdtdDS)c$g|] }||f Sr=r=rvs r5r]z;TestEinsum.test_einsum_views...rxr>r ryrzs @r5r]z0TestEinsum.test_einsum_views..rr>z ...ii->i...c*g|]}dd||fSrCr=rqs r5r]z0TestEinsum.test_einsum_views..':::AQqqq!QwZ:::r>c*g|]}dd||fSrCr=rqs r5r]z0TestEinsum.test_einsum_views..rr>zjii->ijc*g|]}dd||fSrCr=rqs r5r]z0TestEinsum.test_einsum_views..rr>)r'rrc*g|]}dd||fSrCr=rqs r5r]z0TestEinsum.test_einsum_views..rr>z ii...->i...cTg|]$}ddddd||f%Sr rr'N transposerqs r5r]z0TestEinsum.test_einsum_views..8MMMqQ[[Aq11!!!Q':MMMr>cTg|]$}ddddd||f%Srrrqs r5r]z0TestEinsum.test_einsum_views..rr>z i...i->i...cTg|]$}ddddd||f%Sr'rr Nrrqs r5r]z0TestEinsum.test_einsum_views.. rr>cTg|]$}ddddd||f%Srrrqs r5r]z0TestEinsum.test_einsum_views.. rr>z i...i->...icFg|]fdtdDS)c$g|] }||f Sr=r=rvs r5r]z;TestEinsum.test_einsum_views...rxr>r ryrzs @r5r]z0TestEinsum.test_einsum_views..rr>cFg|]fdtdDS)c$g|] }||f Sr=r=rvs r5r]z;TestEinsum.test_einsum_views...rxr>r ryrzs @r5r]z0TestEinsum.test_einsum_views..rr>ziii->ic&g|] }|||fSr=r=rqs r5r]z0TestEinsum.test_einsum_views..#:::AQq!QwZ:::r>)rrrc&g|] }|||fSr=r=rqs r5r]z0TestEinsum.test_einsum_views..#rr>r r rzijk->jikrr'r )r'rr ) r+r.shaper,rbaseEllipsisrflagsTrirswapaxes)r1r2r4r3s @r5test_einsum_viewszTestEinsum.test_einsum_viewss #G .G .F ! AAG %V444A AFaK  !hZ&999A AFaK  $F333A AFaK A    !aVf555A AFaK A    %V444A AGK( ) ) )#(AGK  %V444A  ,, - - - ! AAG $F333A AFaK AC  !aVf555A AFaK AC  ! AAG '1v666A AFaK 7777eAhh777 8 8 8 !aVaS6:::A AFaK 7777eAhh777 8 8 8 " AAG -V<<Fc :tj|}tddD]}tj||}tj|d}t |dr||}ttjd|||ttj|d gg||tddD]}tjd |z| d d |}tj|d}t |dr||}ttjd |||ttj|td gtg||tddD]}tjd |z| d |}tj|d }t |dr||}ttjd|||ttj|d tgtg||tddD]}tjd |z| d d |}tj|d }t |dr||}ttjd|||ttj|d tgtg||tddD]"}tj||z| ||}tj |}t |dr||}ttjd|||ttj|d d g||tj d d g}ttj||||ttj|t|||$ttjdd ddtddD]}tjd |z| d |}tjd |z| d d |}ttjd|||tj||ttj|tg|tg|tj||tddD]}tjd |z| d d |}tj||}ttjd|||tj||ttj|td g|td g|tj||tddD]}tj|d zd z| |d d }tj||}ttjd|||tj|j|jjttj|d tg|d tg|tj|j|jjtddD]}tjd |dz}tj||dz}ttjd|||tj||ttj|d g|dg|tj||t%5}|tjtddD]}tjd|z| d|}tj||}ttjd|||tj||ttj|d dg|dg|tj||tjd|}tjd|||dd|t|tj|d|d|d |d<tj|d dg|dg|dd|t|tj|d|d|tddD]}tjd|z| d|}tj||}ttjd|j|j|tj|j|jttj|jdd g|jdg|tj|j|jtjd|}tjd|j|j|dd|t|tj|jd|jd|d |d<tj|jdd g|jdg|dd|t|tj|jd|jd|tddD]}|dks|dkrtjd|z| d|}tj|d z| |d }ttjd |||tj||ttj|d dg|dd g|tj||tddD]}tjd|z| d|}tj|d z| |d }tjd!| dd }tjd |||dd|t|tj|d|d|d |d<tj|d dg|dd g|dd|t|tj|d|d|tjd| d d}tjd"| dd#}tjd$| d#d }|dkrttjd%|||||||ttj|d dg|dd g|d d g||||tjd&| d d } tjd%|||| dd||d|d} | |d|} t| | d | d<tj|d dg|dd g|d d g| dd| |d|d} | |d|} t| | tj|tjdkrtjd'| d dd#}tjd!| dd d }ttjd(||tj||dd gd dgf)ttj|gd*|gd+d d gtj||dd gd dgf)tjd,| d#d }tjd-|||dd|t|tj|d|ddd gd dgf)|d |d<tj|gd*|gd+d d g|dd| t|tj|d|ddd gd dgf)|dddn #1swxYwY|jd.krd/ntj|jdz } tjdd | d dd0d dg|}tjd d1d2| d dd dg|}tjgd3}ttjd4|||d5d|6tjtj|d k|d k|d kttj|d g|d g|d gd gd5d7 tjtj|d k|d k|d ktjd8|}ttjd9d |d tj|zttjd g|d ggd tj|zttjd:|d d tj|zttj|d gd ggd tj|ztdd;D]+}tj||}tj|jdkrttjd<|||tj||ttjd=|||tj||ttjd>|d |d |zttjd?d ||d |zttjd:|d |d tj|zttjd9d ||d tj|zttjd<|dd|dd|tj|dd|ddttjd=|dd|dd|tj|dd|ddttjd>|ddd |d |ddzttjd?d |dd|d |ddzttjd:|ddd |d tj|ddzttjd9d |dd|d tj|ddz-tjd8t:}tjd||d7}t|tj|t |d@r't|jtj|tj|d gg|d7}t|tj|t |d@r't|jtj|tjd dz} tjd d d d z} tjd d d dAz}ttjdB| | |dCtjdD} tjdE} t?tjdF| | dGtjdF| | dHt?tjdF| | dGdIgd ztjdJdKg}tjdLg}t?tjdM||dHdNt?tjdM||dGdNtjdOd z } tjdPd z } dQD]w}t?tjdR| | |tjdR| | |t?tjdR| | |tj dOdSxtj!d |}tjd |}t?tjdT|||dJgt?tjdU|||dJgt?tjdV|||dJgdS)WNr'r`r()axisastypei->rrrr r z ...i->...z i...->...r%z..., ...r z ...i, ...i z i..., i...i,jrfzij,jf8unsafe)rr rr.zji,jf2zij,jkrrzij,jk,kl<zijk, jil -> klaxesr)r'rr r^z ijk,jil->klu g @g)TTFTTFTTzi,i,i->i?)r rr)r rro,i->i,->z...,...zi,ii,->i,i->ir z z,mz,zm->)r^r r'r zij,ij->jTFg$@g@@g@zi, ig4@)r'rrrr...ij,...jk->...ikg?zji,i->zi,ij->zij,i->)"r+r rir.sumhasattrrrr,r/rtraceasarraylistmultiplyinnerrouterrfilterComplexWarningdot tensordotkindiinfomaxrh logical_anditemsizer_r0rfulleye)r1r r2nr3r4np_arraysupcr)tgtneg_valpqrrwyrs r5check_einsum_sumszTestEinsum.check_einsum_sums1s:q" D DA !5)))Aqr"""Aq(## $HHUOO 5!f===q A A A 1qc2??? C C C Cq" V VA #a%u---55aA>>Aqr"""Aq(## $HHUOO ;FCCCQ G G G 1xmhZ&QQQST U U U Uq" V VA !A#U+++33Aq99Aqq!!!Aq(## $HHUOO ;FCCCQ G G G 1q(mhZ&QQQST U U U Uq" V VA #a%u---55aA>>Aqq!!!Aq(## $HHUOO ;FCCCQ G G G 1q(mhZ&QQQST U U U Uq" K KA !A#U+++33Aq99A Aq(## $HHUOO 4V<<>> B B Bz1a&))H 1h@@@! D D D 1d8nnvFFF J J J J RYz1a00"555q" , ,A !a%u---55a;;A %!)511199!QBBA :q!fEEEQ** , , , 1xj!hZ&QQQQ** , , , ,q" ) )A %!)511199!QBBA !5)))A <AGGGRSUV X X X 1xmQ1 PVWWW!Q ) ) ) )q" / /A !a%!)511199!QBBA !5)))A <AGGG!#qs++- / / / 1q(mQH PVWWW!#qs++- / / / /q" ) )A !5)))!+A !5)))!+A 5!Q@@@!Q ) ) ) 1qc1qcFCCC!Q ) ) ) ) s CC JJr( ) ) )1b\\ C CIac///771==Iau---RYw1vFFFVAq\\+++RYq1a&!aS6JJJVAq\\+++Iau--- &!QA $hIIIIQVAHHTNN$%HHTNN444:F5MMCCC# !aVQ $hIIIIQVAHHTNN$%HHTNN444:F5MMCCCC1b\\ E EIac///771==Iau---RYvqsAC&IIIVAC--///RYqsQFAC!vNNNVAC--///Iau--- &!#qs $hIIIIQVACJJt$4$4$%CJJt$4$4666>\!Qq!fq!f5EFFFHHHRYq)))Q Aq6JJ\!Qq!fq!f5EFFFHHHIb...66q!<< -A1 $hIIIIQ QXXd^^QXXd^^$%q6Aq6"2!4!4!44:F5MMCCC# !YYY999q!f! $hIIIIQ QXXd^^QXXd^^$%q6Aq6"2!4!4!44:F5MMCCCes Cs Cs Cs Cs Cs Cs Cs Cs Cs Cs Cs Cs Cs Cs Cl c))""rx/BQ/F Ha1R"Q?u M M M Ha3Ga1bA O O O HGGG H HRYz1a6CCC^BN1616$B$BAFKK M M M RYq1#q1#q1#s222^BN1616$B$BAFKK M M M Iau % % %RYvq!,,aq k:::RYq"a!b111RVAYY;???RYvq!,,aq k:::RYq1#q"b111RVAYY;???q" . .A !5)))Ax'!++RYy!QHHH[A..000RYuaVDDDbfQPQllSSSRYw1vFFF!LLLRYw1vFFF!LLLRYvq!fEEEqPQ{SSSRYvq!fEEEqPQ{SSSRYy!ABB%3B3&QQQ[122#2#77999RYuaeQssVfMMMVAabbE1SbS622444RYw!""q6JJJAaPQPRPReGTTTRYw1QRR56JJJAaPQPRPReGTTTRYvqua&IIIrvae}}_...RYvq!ABB%&IIIrvae}}_... Iav & & & IeQeX > > >Qq """ 1g   3 "(5// 2 2 2 Ia!bx @ @ @Qq """ 1g   3 "(5// 2 2 2 IaLL1  IaLL A & & * IaLL A & & *RY{Aq!44c::: GFOO GENN29ZAEEE9ZAFFF H H H29ZAEEE519 & & & Hb"X   HbTNN29VQEBBBCHHH29VQDAAA3GGG GFOOa  GFOOa % 6 6H ry)=q!2: < < <!y)=q!2: < < < = = = ry)=q!2: < < <!wvt44 6 6 6 6 F1E " " " GAU # # #29Xq!hGGG4 ! ! !29Xq!hGGG4 ! ! !29Xq!hGGG4 ! ! ! ! !snAN.N.AN2N5AN2c0|ddS)Ni1rr1s r5test_einsum_sums_int8z TestEinsum.test_einsum_sums_int8c t$$$$$r>c0|ddS)Nu1rrs r5test_einsum_sums_uint8z!TestEinsum.test_einsum_sums_uint8frr>c0|ddS)Ni2rrs r5test_einsum_sums_int16z!TestEinsum.test_einsum_sums_int16irr>c0|ddS)Nu2rrs r5test_einsum_sums_uint16z"TestEinsum.test_einsum_sums_uint16lrr>c\|d|dddS)Ni4Trrs r5test_einsum_sums_int32z!TestEinsum.test_einsum_sums_int32o2 t$$$ tT*****r>c\|d|dddS)Nu4Trrs r5test_einsum_sums_uint32z"TestEinsum.test_einsum_sums_uint32srr>c0|ddS)Ni8rrs r5test_einsum_sums_int64z!TestEinsum.test_einsum_sums_int64wrr>c0|ddS)Nu8rrs r5test_einsum_sums_uint64z"TestEinsum.test_einsum_sums_uint64zrr>c0|ddS)Nrrrs r5test_einsum_sums_float16z#TestEinsum.test_einsum_sums_float16}rr>c0|ddS)Nf4rrs r5test_einsum_sums_float32z#TestEinsum.test_einsum_sums_float32rr>c\|d|dddS)NrTrrs r5test_einsum_sums_float64z#TestEinsum.test_einsum_sums_float64rr>cD|tjdSrC)rr+ longdoublers r5test_einsum_sums_longdoublez&TestEinsum.test_einsum_sums_longdoubles r}-----r>c\|d|dddS)Nc8Trrs r5test_einsum_sums_cfloat64z$TestEinsum.test_einsum_sums_cfloat64rr>c0|ddS)Nc16rrs r5test_einsum_sums_cfloat128z%TestEinsum.test_einsum_sums_cfloat128s u%%%%%r>cD|tjdSrC)rr+ clongdoublers r5test_einsum_sums_clongdoublez'TestEinsum.test_einsum_sums_clongdoubles r~.....r>c\|d|dddS)Nr_Trrs r5test_einsum_sums_objectz"TestEinsum.test_einsum_sums_objects2 x((( x.....r>c ~tjd}tjd}ttjd||dgdgggttjd||ddgdgggttjd||dgdgggttjdgdgd d ttjdgdgd d d tjd tj}tjd tj}ttjd|||tjd||ttjd|||dtjd||dtjdd}tjdddd}tjdddd}ttjd|||ddgddgddgddggddgddgddgddgggttjd|||dddgddgddgddggddgddgddgddgggttjddgdgd dggdS)!Nr)r r r'zij...,j...->i...r Trz ...i,...i)r'r r rrgreedy)rrrr r )rrrzijklm,ijn,ijn->z ijklm,ijn->r'r rrorz x,yx,zx->xzyrr r0@rr)r+r0rr,int64r.r/)r1r3r4rs r5test_einsum_misczTestEinsum.test_einsum_miscs GFOO GI  RY11a88QC!:,GGGRY11a$GGGA3QRPS*VVV RY11a88QC!:,GGGRY{IIIyyyAA2FFFRY{IIIyyy(022235 7 7 7 G$bh / / GK * *RY0!Q::Y}a33 5 5 5RY0!QDIIIY}aTBBB D D D IaOO IaOO # #Aq ) ) IaOO # #Aq ) )RY~q!Q77AwQ!R1b':"gBx"bB8<> ? ? ? RY~q!QFFFAwQ!R1b':"gBx"bB8<> ? ? ? RYuqcA3D999QC5AAAAAr>cGdd}tj|g}tjdtjdjzdt }t jt5tj ddg|dddn #1swxYwYt jt5tj d|dgdddn #1swxYwYtj d||dksJdS) NceZdZdZdS))TestEinsum.test_object_loop..MultcdS)N*r=rRs r5rVz1TestEinsum.test_object_loop..Mult.__mul__srr>N)r:r;r<rVr=r>r5Multrs#     r>r"rr')bufferrr rr!) r+rhndarrayintprr_pytestraisesr-r,)r1r"objMultobjNULLs r5test_object_loopzTestEinsum.test_object_loops        (DDFF8$$*ebgajj.A&ARXYYY ]9 % % + + IeaS' * * * + + + + + + + + + + + + + + + ]9 % % + + IeWqc * * * + + + + + + + + + + + + + + +y11R777777s$:BB"%B"C&&C*-C*c~tjdtjdtjddgddgddgdtjddgddgddgdtjdd gd dgddgdttfd ttfd dS) Nrlr rrrr Frrc3cDtjddgddgddgdS)Nr4r Frr+r,r3r4sr5z1TestEinsum.test_subscript_range..s,")A2wB7QPQF]b*c*c*cr>cDtjddgddgddgdS)Nr(rr Frr1r2sr5r3z1TestEinsum.test_subscript_range..s,")AAwAq6BPQ7]b*c*c*cr>)r+r0r,rr*r1r3r4s @@r5test_subscript_rangezTestEinsum.test_subscript_ranges GFOO GFOO !aWa"a1a&5AAAA !aWa"a1a&5AAAA !aWa"a1a&5AAAAj"c"c"c"c"cdddj"c"c"c"c"cdddddr>c tjdddd}tjd}tjd||d}dD]t}t tjd ||||t tjd ||||t tjd ||||utjd d }tjdd}tjd||d}dD]}t tjd||||t tjd||||t tjd||||t tjd||||gd}tjtj||}tj|d}tjd||d}dD]t}t tjd||||t tjd||||t tjd||||ud\}} } tj|| z| zddd|| | }tj|| z| zdz|| | d}tjd||d}dD](}t tjd||||)dS)Nrr r rz ijk,j->ijkFrrzij...,j...->ij...zij...,...j->ij...zij...,j->ij...rrr r)r r z ik,kj->ijzik...,k...->i...zik...,...kj->i...jz...k,kjz ik,k...->i...)r r rrz ijkl,k->ijlzijkl,kz...kl,kz ...kl,k...)r9xr'z...lmn,...lmno->...oz...lmn,lmno->...o)r+r.r/r,rprod) r1ABrefoptdimsr3vJKMs r5test_einsum_broadcastz TestEinsum.test_einsum_broadcastsb Ii ( (Aq 1 1 IaLLi aU;;;  O OC #61sKKKS Q Q Q #61sKKKS Q Q Q #3QCHHH# N N N N IbMM ! !& ) ) IaLL  ( (i QE:::  N NC #5q!cJJJC P P P #7ALLLc R R R 9aSAAA3 G G G ?Aq3GGG M M M M|| Ibgdmm $ $ , ,T 2 2 Id1g  i q!e<<<  K KC 8QC@@@# F F F 9aSAAA3 G G G <ADDDc J J J J1a Ia!eai ( (Aq!Q : : Ia!eai!m $ $ , ,Q1a 8 8i.1uEEE  7 7C #61,/11125 7 7 7 7 7 7r>c(tjdddtj}tjddddtj}tjd||}tj||d}t||tjd ddtj }tjd ddd d tj}tjd ||}tj||d}t||dS) Nrr r i@i z cl, cpx->lpx)rrrroirzcl, cpxy->lpxy) r+r.r/rfloat32int16r,rrfloat64)r1r<r=estps r5test_einsum_fixedstridebugz%TestEinsum.test_einsum_fixedstridebugsA" Ie   $ $Q * * 1 1"* = = Il # # + +Aq$ 7 7 > >rx H H Y~A . . \!aw / / /R" Ie   $ $Q * * 1 1"* = = Io & & . .q!R < < C CBJ O O Y'!Q / / \!Qf - - -Rr>c&tjddd}tjd}tjd||tjd}||dddf|dddf||f}t ||dS)Nrr')rrrrrzaabb->abrr)r+randomnormalzerosr,r.r)r1rwy1idxy2s r5test_einsum_fixed_collapsingbugz*TestEinsum.test_einsum_fixed_collapsingbug s I  Q< 0 0 Xf   *aR((((ill s111d7|SD\33 4Rr>ctjd}tjd|}|dd}t ||dS)N)r^r^r^r^zijij->rr )axis1axis2)r+rN random_sampler,rr )r1tensorrwrs r5"test_einsum_failed_on_p9_and_s390xz-TestEinsum.test_einsum_failed_on_p9_and_s390x*sb(()9:: Ih ' ' LLqL * * 0 0 2 21r>ctjd}tjdddd}tjd}d|ddd<tjd||||t|j|tjdddd}tjd||||t|j|tjdd }tjd}d|d <tjd tj}tjd |||t|j|dS) Nrr^r rz mi,mi,mi->mrz im,im,im->m)r r r ).r)r r ij,jk->ik)r+r0r,rrrG)r1rwr correct_bases r5(test_einsum_all_contig_non_contig_outputz3TestEinsum.test_einsum_all_contig_non_contig_output2s+ GFOOgbkk##A#wr{{  SSqS -Aqc222238\222gbkk##A# -Aqc222238\222gi  (wy))  V GFBJ ' ' +q!----38\22222r>r AllFloat AllIntegerctj|}tjddz|}tjd|}tjd|}||ksJtjd||}t|||ztjd|dddd|dddd}t|||ztjd||||zksJtj d|}tjd|| d| }t||| dztjd ||}t||| dztjd ||}|tjd||zksJtjd ||}|tjd||zksJtjgd |}tjd|||}t|||z|ztjd||||}t|||z|z|zdS)Nr?r r`rzi,i->izi,i->rrrrr)rbrbg?g@rzi,i,i->z i,i,i,i->) r+r r.rrhr,rrrepeatr0type)r1r arrscalarresrs r5test_different_pathszTestEinsum.test_different_pathsIs y||c!))%00!5)))is##cggiii#s++3c ***i#**Q--!"4cjjmmCCaC6HII3c ***y#s++c /@/@@@@@gau%%%iejjmm===3ejjmm 3444i--3ejjmm 3444i,,biv|444444iV,,biv|444444h000>>>i 3S113sS 5 5 7 7888i S#sC883sS3!6 ; ; = =>>>>>r>c@tjdtjdd}d|d<tjdtjdd}tjdtj}tjd|||}t ||dS) N)rr'r'r`r T.)r r'r'rr)r+rPbool_r0r,r)r1r3rrrgs r5test_small_boolean_arraysz$TestEinsum.test_small_boolean_arraysws HZrx 0 0 0! 4#hz2222A26girx000i,a<<<S#r>ctjddd}tjd|||}||usJdS)Nror rr)r+r.r/r,)r1r3rgs r5test_out_is_reszTestEinsum.test_out_is_ressI IaLL A & &i,a:::axxxxxxr>Nc|i|g}|ddd}|D]4}d|D}|tjj|5n|g|z}tj|ddi}tj|ddi}t ||tj|ddi}t ||dS) N->rr"c(g|]}t|Sr=)global_size_dictrzs r5r]z/TestEinsum.optimize_compare..s:::(+:::r>rFroptimal)splitappendr+rNrandr,r) r1 subscriptsoperandsargstermstermr@nooptr?s r5optimize_comparezTestEinsum.optimize_compares  cZ|d|ddS)Nz a,ab,abc->abcz a,b,ab->abr|rs r5test_hadamard_like_productsz&TestEinsum.test_hadamard_like_productss0 o... l+++++r>c|d|d|ddS)Nzea,fb,gc,hd,abcd->efghzea,fb,abcd,gc,hd->efghzabcd,ea,fb,gc,hd->efghr~rs r5test_index_transformationsz%TestEinsum.test_index_transformationssG 6777 6777 677777r>cV|d|d|d|d|d|d|d|ddS)N$acdf,jbje,gihb,hfac,gfac,gifabc,hfacz cd,bdhe,aidb,hgca,gc,hgibcd,hgaczabhe,hidj,jgba,hiab,gabz bde,cdh,agdb,hica,ibd,hgicd,hiaczchd,bde,agbc,hiad,hgc,hgi,hiadchd,bde,agbc,hiad,bdi,cgh,agdbzbdhe,acad,hiab,agac,hibdr~rs r5 test_complexzTestEinsum.test_complexs DEEE DEEE @AAA 7888 @AAA >??? >??? 899999r>c|d|d|d|d|d|ddS)Nz ab,ab,c->z ab,ab,c->cz ab,ab,cd,cd->zab,ab,cd,cd->aczab,ab,cd,cd->cdzab,ab,cd,cd,ef,ef->r~rs r5 test_collapsezTestEinsum.test_collapses k*** l+++ o... /000 /000 344444r>c|d|d|d|d|d|ddS)Nzab,cd,ef->abcdefzab,cd,ef->acdfzab,cd,de->abcdez ab,cd,de->bezab,bcd,cd->abcdzab,bcd,cd->abdr~rs r5 test_expandzTestEinsum.test_expands 0111 ./// /000 n--- /000 ./////r>c|d|d|d|d|d|d|d|d|d |d |d |d dS) N eb,cb,fb->cefdd,fb,be,cdb->cefbca,cdb,dbf,afc->dcc,fce,ea,dbf->abzfdf,cdd,ccd,afe->aezabcd,adzed,fcd,ff,bcf->bezbaa,dcf,af,cde->bezbd,db,eac->acezfff,fae,bef,def->abdzefc,dbc,acf,fd->abez ba,ac,da->bcdr~rs r5test_edge_caseszTestEinsum.test_edge_casess o... 1222 1222 2333 3444 i((( 1222 2333 ./// 4555 3444 o.....r>c|d|d|d|d|ddS)Nzab,abzab,bazabc,abczabc,baczabc,cbar~rs r5test_inner_productzTestEinsum.test_inner_productsl g&&& g&&& i((( i((( i(((((r>c|d|d|d|d|d|d|d|d|d |d |d dS) Nzaab,fa,df,ecc->bdezecb,fef,bad,ed->aczbcf,bbb,fbf,fc->z bb,ff,be->ezbcb,bb,fc,fff->zfbb,dfd,fc,fc->zafd,ba,cc,dc->bfzadb,bc,fa,cfc->dzbbd,bda,fc,db->acfzdba,ead,cad->bcezaef,fbc,dca->bder~rs r5test_random_caseszTestEinsum.test_random_casess 2333 2333 0111 m,,, /000 /000 0111 0111 2333 0111 011111r>ctjdddddd}tjd|}t |dgdS)Nror'r zbbcdc->dr)r+r.r/r,rr5s r5test_combined_views_mappingz&TestEinsum.test_combined_views_mappingsN IaLL Aq!Q / / Ij! $ $Qr>ctjddd}tjdd}tjdd}tjd}|d|||g|d||||gtjdddd}tjd d }|d |||g|d ||||gtjd d dd}|d||gdS)Nr'rrrr^z ijk,kl,jl)rwzijk,kl,jl,i->irz abjk,kl,jlzabjk,kl,jl,ab->abrr rz obk,ijk->ioj)r+rNrur|r.r/)r1r3r4rr)efgs r5test_broadcasting_dot_casesz&TestEinsum.test_broadcasting_dot_casessL INN1a # # INN1a  INN1a  INN2   kQ1I>>> .!Q1FFF INN1aA & & INN1a  laAY??? 1Q1aLIII IbMM ! !!Q * * n1v>>>>>r>ctjdd}tjdd}dD]6}tjd||d|}t|jjtjd||d |}t|jjtjd||d |}t|jjtjd||d |}t|jjd ut|jjd utjd||| }t|jjd ut|jjd u8tjdd}dD]4}tjd||d|}t|jj5tjdd}dD]4}tjd||d|}t|jj5dS)N)r r rF)rr8rz...ft,mf->...mtr3rrrkFrC)r+r0r,rr f_contiguous c_contiguous)r1r3r4r?rMrr)s r5test_output_orderzTestEinsum.test_output_orders GIS ) ) ) GF# & & &  5 5C)-q!3MMMC CI* + + +)-q!3MMMC CI* + + +)-q!3MMMC CI* + + +)-q!3MMMC CI*e3 4 4 4 CI*e3 4 4 4)-q!cBBBC CI*e3 4 4 4 CI*e3 4 4 4 4 GF# & & &  , ,C)-q!3MMMC CI* + + + + GIS ) ) )  , ,C)-q!3MMMC CI* + + + + , ,r>)FrC)4r:r;r<r6rjrr+_no_nep50_warningrrrrrrrrrrrrrr r rrrr+r6rErLrTrZr^r'mark parametrize typecodesrhrkrmr|rrrrrrrrrrrr=r>r5rrsS6S6S6j======~I.I.I.VRo!o!o!o!b %%%%%%%%%%%%++++++%%%%%%%%%%%%+++...+++&&&//////$B$B$BL 8 8 8 e e e(7(7(7T<333. [W \* % \(B BDD*?*?DD*?X (((($,,, 888 : : :555000 / / /))) 2 2 2 ???(",",",",",r>rcHeZdZefdZdZdZdZdZdZ dZ dZ d Z d S) TestEinsumPathc|g}|ddd}|D]6}fd|D}|tjj|7|S)Nrorr"c g|] }| Sr=r=)r\rw size_dicts r5r]z1TestEinsumPath.build_operands..*s///QIaL///r>)rsrtr+rNru)r1stringrrwryrzr@s ` r5build_operandszTestEinsumPath.build_operands$s{8 T""1%++C00 3 3D////$///D OOBIND1 2 2 2 2r>c>t|t|k}t|tt|dz D]>}|t||dztz}|||dz||dzkz}?t|dS)Nr')lenrri isinstancetuple)r1comp benchmarkretposs r5assert_path_equalz TestEinsumPath.assert_path_equal/s4yyC NN* TQ'' 9 9C :d37mU33 3C DqMYsQw%77 8CC r>c|d}tj|ddi\}}||ddgtj|ddi\}}||ddg|d}tj|ddi\}}||ddgtj|ddi\}}||ddgdS) Nz a,b,c->abcr)rr einsum_pathr)rrrzacdf,jbje,gihb,hfacrr'r r rr+rr)r1 outer_testpathpath_str long_tests r5test_memory_contraintsz%TestEinsumPath.test_memory_contraints8s((66 LmLLh tmY%?@@@MnMMh tmY%?@@@''(=>> K]KKh tm\%BCCCL^LLh tm\%BCCCCCr>c|d}tj|ddi\}}||gdtj|ddi\}}||gd|d}tj|ddi\}}||gdtj|ddi\}}||gddS) Nrrr)r)r rr-)r rrlrr rr'rrr)rr-rr r-r'r rr)r)rr)r'rr-rrrr)r1 long_test1rr long_test2s r5test_long_pathszTestEinsumPath.test_long_pathsJsZ(()OPP GhGGh t&V&V&V W W WHiHHh t&V&V&V W W W(()IJJ GhGGh t&V&V&V W W WHiHHh t&V&V&V W W W W Wr>cV|d}tj|ddi\}}||gdtj|ddi\}}||gd|d}tj|ddi\}}||gdtj|ddi\}}||gd|d}tj|ddi\}}||gd tj|ddi\}}||gd |d }tj|ddi\}}||gd tj|ddi\}}||gd |d d d d d d}tj|ddi\}}||gdtj|ddi\}}||gddS)Nrrr)rrrrrr)rrrrr)rrrrrrrrrza,ac,ab,ad,cd,bd,bc->r)r3r4rr))r)rr)rr'r r rrr)r1 edge_test1rr edge_test2 edge_test3 edge_test4s r5test_edge_pathszTestEinsumPath.test_edge_pathsas((99 GhGGh t%D%D%DEEEHiHHh t%D%D%DEEE(()<== GhGGh t%L%L%LMMMHiHHh t%L%L%LMMM(()<== GhGGh t%L%L%LMMMHiHHh t%L%L%LMMM(()=>> GhGGh t%L%L%LMMMHiHHh t%L%L%LMMM(()@9;"2TV3W3W)YY GhGGh t%P%P%PQQQHiHHh t%P%P%PQQQQQr>c|d}tj|ddi\}}||ddgtj|ddi\}}||gdgd}tj|d|i\}}|||tj|ddi}tj|d|i}t ||dS) NrrFrrTr)rrrrrr+rrr,r)r1 path_testrrexp_pathr{r?s r5test_path_type_inputz#TestEinsumPath.test_path_type_inputs''(<== CUCCh tm\%BCCCBTBBh t%L%L%LMMM:::FXFFh tX... 95u55i6X66E3'''''r>c|d}gd}tj|d|i\}}|||tj|ddi}tj|d|i}t ||dS)Nz cab,cdd->abr)r'rrFr)r1rrrrr{r?s r5#test_path_type_input_internal_tracez2TestEinsumPath.test_path_type_input_internal_traces'' 66 000FXFFh tX... 95u55i6X66E3'''''r>cj|d}gd}tttjg|Rd|itttjg|Rd|i|d}gd}tttjg|Rd|itttjg|Rd|idS)Nzab,bc,cd,de->ae)rrlrrza,a,a->ar)rr RuntimeErrorr+r,r)r1rrs r5test_path_type_input_invalidz+TestEinsumPath.test_path_type_input_invalids''(9:: 222lBIM MMMHMMM ". I+4 I I I?G I I I'' 33 000lBIM MMMHMMM ". I+4 I I I?G I I I I Ir>ctjdgg}tjddgdD]}tjdj|| dS)Nr'r r)rcz{}...a{}->{}...a{})r+rh itertoolsproductr,format)r1resps r5 test_spaceszTestEinsumPath.test_spacessahuoo#RIa888 = =B I1*126 < < < < = =r>N) r:r;r<rqrrrrrrrrrr=r>r5rr#s/?    DDD$WWW.*R*R*RX(((& ( ( ( I I I=====r>rctjdtdd}tjdtdd}tj||}tjd||}t ||tjd|||}t ||dS)Nror`r r\r)r+r.intr/rr,r)r3r4r)rs r5 test_overlaprs !3''1--A !3''1--A q! A +q!$$AA +q!+++AAr>)rr'numpyr+ numpy.testingrrrrrrr r charsrhsizesdictziprqrrrr=r>r5rs@  222334E5))**P,P,P,P,P,P,P,P,d \=\=\=\=\=\=\=\=|     r>