K iEddlmZmZmZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZmZmZmZmZddlmZddlmZmZdZd Zd Zd Zd Zd ZdZ dZ!dZ"y))ERationalpi)exp)sqrt)SsymbolsI) convolutionconvolution_fftconvolution_nttconvolution_fwhtconvolution_subsetcovering_productintersecting_productconvolution_int)raisesxyc dtddtdtddggdgdgddtddtddg}ttk(sJtd td k(sJtd td k(sJtddd tddd k(sJd d t t  k(sJt t  k(sJt t  k(sJt t fdt t fdtdtk(sJtdtk(sJt t fdt t fdt t fdt t fdtdtcxk(r%tddcxk(rtdk(sJJtdtk(sJt t fdt t fdt t fdtdgdgtdgdgk(sJttk(sJttddgtddgtddgk(sJt|dd td!d"td#dtd$dtd%dtd&d"td'dgk(sJy)(N rrr)rrrr)iii irdps;Lprimec"tdS)Nrr#r'r bdqsl/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/discrete/tests/test_convolutions.pyz"test_convolution.."k!QAQ?c"tdS)Nr)r*r+sr/r0z"test_convolution..#r1r2T)dyadicFc"tddSNrT)r#r5r*)r,r-sr/r0z"test_convolution..(k!QAdCr2c"tdSNT)r'r5r*)r,r-psr/r0z"test_convolution..)k!QaEr2c"tddSr7r*ar,sr/r0z"test_convolution..*r8r2c"tdSr:r*)r,cr;sr/r0z"test_convolution..+r<r2)subsetrBr5c"tddS)NTrCr*r>sr/r0z"test_convolution..2sk!QtDIr2c"tddS)NTr4)rBr#r*)rAr-sr/r0z"test_convolution..3sk!QtCr2c"tdS)NT)rBr'r*)r?rAr.sr/r0z"test_convolution..4sk!Qt1Er2rrri " +q) rrr r r r TypeErrorrrr)er?r,rAr-r;r.s @@@@@@r/test_convolutionrQ s HQNDGXa^4AAA A Xa^Xa^,A q! 1 5 55 5 q! #q!'C CC C q! #q!'C CC C q!AB%Q '?1QR5!+K KK K AA q!1 %AQ)G GG G q!1 %AQ)G GG G q!1 %AQ)G GG G 9?@ 9?@ q!D )-=a-C CC C q!E *k!Q.? ?? ? 9CD 9EF 9CD 9EF q!D )-?1-E / 1T% 8 /Aq. // // / q!E *k!Q.? ?? ? 9IJ 9CD 9EF sQC OQC!$= == = q! 1 5 55 5 1 !A 8Xa^ r!)l2Q# rarblx4*r`rcc&tgdgddS)NrSrTr!rUr*r2r/r0z)test_cyclic_convolution..s{9irJr2) rrr lenrZeror r ValueError)r?r,uvwrrr;r.rstrAr-s r/test_cyclic_convolutionroAs; HQNDGXa^4AA y)1 5  9A 6 2Iy1 22 22 2 y)1 5 EE E !Q!Q!Q!QRSUVXA !Q!Q!Q!QHA q!1 % 1CFSVOa$7 8 99 9 q!1 %(5%*@(5RWBX$UD18D$3G*I II I q!1 %(5%*@(3PSBTV^_aceVf$T40(5$2GRVX\I]*_ __ _ q!1 %Aq*affX5 66 6 w$1A 55%(A q!Q QQ Q q!S SS S q!z'test_convolution_fft..s+YqyY!r1!,2Y2Ys"$rrSrTr rXrr4rrrrzrrrri#0it:ir4r rzrKrY-r ii_7i irIr!i ic)iii)iYri|/a iXlXiiDioii)l"$lm2IlPq^$c*tttSNr rrrer2r/r0z&test_convolution_fft..s oa3r2cBtttgttgSrrrer2r/r0z&test_convolution_fft..s1v1v>r2) allr r rrrrrrrOrhrer2r/test_convolution_fftrsA YR!IY YY Y 9i 04G GG G A3 *i 77 7 Aq69 - @@ @ A!G9q1Q3wi 0R!A#XJ >> > A!GQ1Wa!A#a%i88Aq>AaCPQE;Q:R S c2 2b ((3*;aeBh*FQSUWHX[\]`[`ad[dHd e ff f HQNHQN;hq!nhWXZ[n^fghjk^l=m n%-b"%5xB7GRTVXIY[cdegh[i$j kk k HQNHQNHQNKhWXZ[n^fghjk^lnvwxz{n|M} ~!)!R(2r2BHTSXDY[cdgil[mowxy{}o~  @@ @ B47+d1gqtQqS-A B!WRZT!WQY"r#b'z0ADG0K,0GBJNDGCGOM MM M D%=*= >D EE E FH-&/A BI JJ J 934 :>?r2c dddtfdgdgfDsJtdgdgdgk(sJtddgd gd d gk(sJtgd gd gdk(sJtgdgdgdk(sJtgdgdtgdgdk(sJtgdgdtgdgdk(sJttfdttfdttfdy)Nr$r%iʚ;c3TK|]}fD]}tg||gk(!yw)r&Nr )rrrrr;r.rls r/rsz'test_convolution_ntt..s6[RSUVXYQZ[Ar1A."4[4[s%(rrrr4rr )iy}iivi)i}r[iT)icigiO4i1iۺij )i9ie0ir)iEi,Siti8)ii ibiiii)rrzbC)rr4rr r)rzLNEc&tddgddgS)Nrrrrr)rlsr/r0z&test_convolution_ntt..s1v1vqAr2cFtttgttgSrr rr)r.sr/r0z&test_convolution_ntt..s1v1vqAr2c.tttSrr)r;sr/r0z&test_convolution_ntt..soaA6r2)rr rrhrO)r;r.rls@@@r/test_convolution_nttrs9 AAA [rA3i[ [[ [ A3Q 'A3 .. . Aq6A3 *q"g 55 5 57KQ OTZ ZZ Z :dtd?zdz ztd@dAdtzztdBddCdDtzzdEdEgk(sJt dF\}}tggzzzzzzgk(sJt|ggzzzzzz|z|zgk(sJt|g|gzzz||zzzzz|z|zz|z|zzgk(sJt t fdGt t fdHy)INrrSrT)rKrurwrvrrr4r rrrr=rNii*)^35rrWrvrurinirIriAriruiiirWi"i rvi\iiiGi^i{iii'ii9isiEi4i [ii%r!r}i8rK(r u v w x y zctSrrrsr/r0z'test_convolution_fwht...q!4r2c(tzzSrr)rirjrrsr/r0z'test_convolution_fwht..s.qsAE:r2)rrrr r rrO) r?r,rArkzrirjrrs @@@@r/test_convolution_fwhtrsw B #r )) ) B $ ** * Iy 15E EE E Xa^Xa^Xa^LqRSU]^_abUcNd e%-b!_hr26FQTVYHZ\dehjl\m$n oo o HQNDGXa^Q1W=A$A QqS!ac'1hq!na0A Aq !baj3&6Q&>$&tAwJ$1C$Cc!e$K$&tAwJ$1B$BRT$I$&tAwJ$1C$C$&tAwJ$4s1u$<$,T2$6Q$>$&tAwJ$1B$BSU$J$&tAwJ$1C$Cc!e$K&M MM M Aq !htQ&7#a%&?$PQARUXYZUZAZqCE!8D!#4s1u#.%s0A6r2c0ttddSNrr)rrrisr/r0z)test_convolution_subset..&s0!QCr2)rrr rr rrO r?r,rArjrkrrirrs @@@r/test_convolution_subsetrs b" % ++ + b8Aq>"2 3r 99 9 q1Q3q5ykHQN+; <QqSU KK K HQNDGQ1W-A$A QqSUA!GQA2A a #HS!,.Qrr2c0ttddSr)rrrsr/r0z'test_covering_product..Rs.x1~qAr2)rrr rr rrOrs @@@r/test_covering_productr)st B #r )) ) B!Q 0 1R 77 7 Q1QYK(1a.)9 :q1Q3q5yk II I HQNDGQ1W-A$A QqSUBAIq(1b/26A Aq !b(4*;R#d1g+=M(+DG d(:T!V(CR(0a(8"r$q'z/(*47 XdA5F(Fa(O&Q QQ Q Aq !cBqDj$q.(,quQw8JQuWUVY8V(,qtAv uqwqy7H(-"Q8KdSTf8T&V VV V Aq !%5a%; ;; ; Aq"v &3A:teAg~)-#a%9KaPUgVWi9W),qtAvtagai7G),qtAvxr7JTRSV7S+U UU U Aq"v &1qs1u9$S!,qvby8!baj.1TRSW9UV;WX=:X 3tAw;r>1BtAwJqL@1U72:M+O OO O}-Aq!Q1 Q1I1v .qS!A#!)ac/1Q3!< == = Q1aL1a& 1qS!A#!)ac/1Q3!ac AaCH II I QFQ1I .$aAYA7 88 8 945 9ABr2c tgggk(sJtgtddggk(sJtdtdzdz zgtddgdtdzdz zgk(sJdtdtdddtzzddtzzg}gd }dtdzdz zdd tzzdtdd d g}t||d tdztddzdtzzdtdzdzdtzztdddtzzddtzzddddgk(sJt||tdd tdzdz ztdd dtzztdd tdd ddddgk(sJt||t||k(sJt|dd|ddtdd td zdz ztd!d d"tzztd#d td$d ddddgk(sJt||dd%td&dd'tdzzdtdztzdz ztd(zd)z zd*dtdzzd tdztzzd+tzztd,dd-tzzdgk(sJt d.\}}}t||g|gz|zz|zz|zz||zz||zddgk(sJt||g|g|zzz||zz||zz|zz|zz|zzzddgk(sJt|g|gt|g|gk(sJt t fd/t t fd0y)1Nrrr4rrrrr )rrrr~$OrvrrruiCi^iiiIi@riPri)i1%iEiBi@Ki6r!ii!i2ii,rGi rirrrctSr)rrsr/r0z+test_intersecting_product..xs21a8r2c0ttddS)Nr r)rrrsr/r0z+test_intersecting_product..ys21hq!nEr2)rrr rr rrOrs @@@r/test_intersecting_productrUs! B '2 -- - Xa^$4 5 ;; ; QqSU hq!n-= >1qs1u9+ MM M DGXa^ac)1qs73A$A QqSUA!GQB4A 1 %#d1g+q8I*IDQRF*R #DG c 1CE 98C;KdSTf;T #c!e Q1a*9 99 9 1 %(62*>4*I#d1f,hub.A8CQSCTVZ\]_`bc*e ee e 1 %)=a)C CC C !"q"v .8E23F4PQ3QUB'$q&0(5"2ExPSUWGXZ[]^`acd3f ff f 1Sb6 *c1%47 2QtAwYq[]BQtVBYN!DG)OaQik1BqD8(3:JRPQT:QSTV VV V}-Aq!Q1 Aq Aq6 2qS1Q3Y1_qs2QqS8!A#q!D EE E Aq! q!f 51qsQqS1Q3.14qs:AaC!A#Iq!L MM M AAq 2(!QQF; << < 989 9EFr2chtdgdgdgk(sJtddgdgdgk(sJtgdgdgdk(sJtdggdgdk(sJtddggdgdk(sJtgd gd gd k(sJtgd gd gdk(sJtgdgdgdk(sJy)NrrrSrTrtrxrry)rGrr)rr4r)iUr}ir{rz)rrrr!)rrr!r)rrrrrr)irrrirrLW) rr4rriYrziii)iWiiii2iiei iiyiKi֗imiii)rrer2r/test_convolution_intr|s A3 $ ++ + Aq6A3 'A3 .. . 9i 04G GG G A3 *i 77 7 Aq69 - @@ @ >: 6:T TT T =- 8rsg0069$$(22j\L~@<86'