
    \hE                         S SK JrJrJr  S SKJr  S SKJr  S SKJ	r	J
r
Jr  S SKJrJrJrJrJrJrJrJr  S SKJr  S SKJrJr  S rS	 rS
 rS rS rS rS r S r!S r"g)    )ERationalpi)exp)sqrt)SsymbolsI)convolutionconvolution_fftconvolution_nttconvolution_fwhtconvolution_subsetcovering_productintersecting_productconvolution_int)raisesxyc                  R  ^^^^^^ S[        SS5      [        S5      [        SS5      /m/ SQm/ SQm/ SQmS[        SS5      [        SS5      /n [        TT5      [        TT5      :X  d   e[        TTS	S
9[        TTS	S
9:X  d   e[        TTSS
9[        TTSS
9:X  d   e[        TTSS  SS
9[        TSS  TSS
9:X  d   eSmSm[        TTTS9[	        TTTS9:X  d   e[        TTTS9[	        TTTS9:X  d   e[        TTTS9[	        TTTS9:X  d   e[        [        UUU4S j5        [        [        UUU4S j5        [        TTSS9[        TT5      :X  d   e[        TTSS9[        TT5      :X  d   e[        [        UU4S j5        [        [        UUU4S j5        [        [        UU4S j5        [        [        UUU4S j5        [        TTSS9[        TT5      s=:X  a!  [        TTSSS9s=:X  a  [        TTSS9:X  d   e   e[        TTSS9[        TT5      :X  d   e[        [        UU4S j5        [        [        UU4S j5        [        [        UUU4S j5        [        S/S/5      [        S/S/5      :X  d   e[        TT5      [        TT5      :X  d   e[        [        SS5      /[        SS5      /5      [        SS5      /:X  d   e[        TU 5      SS [        S!S"5      [        S#S5      [        S$S5      [        S%S5      [        S&S"5      [        S'S5      /:X  d   eg )(N            	   r   r      r      )r   r   r   r      )i  i  i  i  r   dps ;L  primec                     > [        T TSTS9$ )Nr   r#   r'   r   bdqs   ^/var/www/auris/envauris/lib/python3.13/site-packages/sympy/discrete/tests/test_convolutions.py<lambda>"test_convolution.<locals>.<lambda>"       k!QAQ?    c                     > [        T TSTS9$ )N   r)   r*   r+   s   r/   r0   r1   #   r2   r3   T)dyadicFc                     > [        T TSSS9$ Nr   T)r#   r6   r*   )r,   r-   s   r/   r0   r1   (       k!QAdCr3   c                     > [        T TTSS9$ NT)r'   r6   r*   )r,   r-   ps   r/   r0   r1   )       k!QaEr3   c                     > [        T TSSS9$ r8   r*   ar,   s   r/   r0   r1   *   r9   r3   c                     > [        T TTSS9$ r;   r*   )r,   cr<   s   r/   r0   r1   +   r=   r3   )subsetrC   r6   c                     > [        T TSSS9$ )NTrD   r*   r?   s   r/   r0   r1   2   s    k!QtDIr3   c                     > [        T TSSS9$ )NTr5   )rC   r#   r*   )rB   r-   s   r/   r0   r1   3   s    k!QtCr3   c                     > [        T TSTS9$ )NT)rC   r'   r*   )r@   rB   r.   s   r/   r0   r1   4   s    k!Qt1Er3   r   r   r   i
         "       +   q      )
r   r   r   r   r   r   	TypeErrorr   r   r   )er@   r,   rB   r-   r<   r.   s    @@@@@@r/   test_convolutionrR      s   	
HQNDGXa^4AAA A	Xa^Xa^,Aq!1 5555q!#q!'CCCCq!#q!'CCCCq!AB%Q'?1QR5!+KKKK 	AA q!1%AQ)GGGGq!1%AQ)GGGGq!1%AQ)GGGG
9?@
9?@ q!D)-=a-CCCCq!E*k!Q.????
9CD
9EF
9CD
9EF q!D)-?1-E /1T%8/Aq./ / / / / q!E*k!Q.????
9IJ
9CD
9EF sQC OQC!$====q!1 5555 1!A8Xa^<LLLLq!R#r):HRO!)"a(2q/8CQSCT!)"a!2 2 2 2r3   c            
      t	   S[        SS5      [        S5      [        SS5      /n / SQn[        / SQ/ SQSS	9[        / SQ/ SQSS	9s=:X  a  [        / SQ/ SQ5      :X  d   e   e[        / SQ/ SQSS	9/ S
Q:X  d   e[        SS5      [        SS5      [        SS5      [        SS5      [        SS5      /n [        SS5      [        SS5      [        SS5      [        SS5      /n[        XSS	9[        X[        U 5      [        U5      -   S-
  S	9:X  d   e[        XSS	9[        SS5      [        SS5      [        SS5      [        SS5      /:X  d   e[        XSS	9[        SS5      [        SS5      [        SS5      [        SS5      [        SS 5      [        S!S"5      /:X  d   e[        XSS	9[        XSS	9[        R
                  /-   :X  d   eS#S$[	        S%5      S&S'/n [	        S(5      S)S*S+/n[        XS,SS-9[        XS,SS-9s=:X  a  [        XS,S.9:X  d   e   e[        XS,SS-9/ S/Q:X  d   e[        XS,SS-9/ S0Q:X  d   e[        XS,SS-9[        XS,S.9S/-   :X  d   e[        S15      u  p#pEn[        S25      u  pxpnX#XEU/nXxXU/n[        XS3SS49/ S5Q:X  d   e[        XS3SS49/ S6Q:X  d   e[        XS3SS49Xr-  Xv-  -   X-  -   X-  -   X-  -   X-  -   X-  -   Xs-  X-  -   X-  -   X-  -   X-  -   X-  -   Xt-  X-  -   X-  -   X-  -   X-  -   X-  -   Xu-  X-  -   X-  -   X-  -   X-  -   X-  -   /:X  d   e[        XS3SS49Xr-  X-  -   X-  -   X-  -   X-  -   X-  -   X-  -   Xs-  X-  -   X-  -   X-  -   X-  -   X-  -   Xt-  X-  -   X-  -   X-  -   Xu-  X-  -   X-  -   X-  -   Xv-  X-  -   X-  X-  -   /:X  d   e[        XS3SS79/ S8Q:X  d   e[        U SS  US3SS79/ S9Q:X  d   e[        XS S: S3SS79/ S;Q:X  d   e[        XS3SS79Xr-  Xu-  -   X-  -   X-  -   X-  -   X-  -   X-  -   Xs-  Xv-  -   X-  -   X-  -   X-  -   X-  -   Xt-  X-  -   X-  -   X-  -   /:X  d   e[        XS3SS79Xr-  X-  -   X-  -   Xs-  X-  -   X-  -   X-  -   Xt-  X-  -   X-  -   X-  -   Xu-  X-  -   X-  -   X-  -   Xv-  X-  -   /:X  d   e[        [        S< 5        g )=Nr   r   r   r   r   r   r   r   r   r   r5   r   cycle)   rX      r   r   r    r   iT i\g  i9w  iL,  iu+  i  iE  i8  r5   iN  iN  i  i;  /      i  i@  i  i	  i  i		  i;Q   i  iui  i  i  i' r%   )r'   rW   r&   )`   iB  ih
  <    )i#  i  i  r^   r_   i?  ix5  z	u v w x yz	p q r s tT)r6   rW   )l   PFn	l   \1AHl   !)l   *<	l   dl   JE8J   uR!    pj$)rC   rW   )l   ^tB   XO r`   ra      Xrl   	)l   @0o l   |	?l   X'9 l   :K>r!   )l   2Q#rb   rc   l   x4* ra   rd   c                       [        / SQ/ SQSS9$ )NrT   rU   r!   rV   r*    r3   r/   r0   )test_cyclic_convolution.<locals>.<lambda>   s    {9irJr3   )	r   r   r   lenr   Zeror	   r   
ValueError)r@   r,   uvwr   r   r<   r.   rstrB   r-   s                 r/   test_cyclic_convolutionrq   A   sY   	
HQNDGXa^4AAy)15	9A62Iy12 2 2 2 2 y)15EEE	!Q!Q!Q!QRSUVXA	!Q!Q!Q!QHAq1%CFSVOa$789 9 9 q1%(5%*@(5RWBX$UD18D$3G*I I I I q1%(5%*@(3PSBTV^_aceVf$T40(5$2GRVX\I]*_ _ _ _ q1%A*affX56 6 6 
w$1A	
55%(Aq<q9L:6A56 6 6 6 6 q<q9 >Q Q Q Q q<q9 >S S S S q<q9L1QC78 8 8 K(MA!K(MA!	
qQA	
qQAqD2FG G G qD2 7H H H H qD2S13Y_qs"QS(13.4S13Y_qs"QS(13.S13Y_qs"QS(13.S13Y_qs"QS(13.00 0 0 qD2S13Y_qs"QS(13.4S13Y_qs"QS(13.S13Y_qs"S13Y_qs"S13YS13Y   qD2 72 2 2 2 quaA6EF F F qCR&Q7 <Q Q Q Q qD2S13Y_qs"QS(13.4S13Y_qs"QS(13.S13Y_qs"$$ $ $
 qD2S13Y_S13Y_qs"S13Y_qs"S13Y_qs"S13Y	   :JKr3   c            	      t   [        S / S/4 5       5      (       d   e[        / SQ/ SQ5      / SQ:X  d   e[        S// SQ5      / SQ:X  d   e[        SS// SQ5      / SQ:X  d   e[        SS	[        -  -   /S	S[        -  -   /5      S
S[        -  -   /:X  d   e[        SS	[        -  -   SS[        -  -   SS[        -  S-  -   /[        S	S5      S[        -  S-  -   /5      [        SS5      [        S-  S-  -   [        SS5      [        S-  S-  -   [        SS5      [        S-  S-  -   /:X  d   e[        [        SS5      [        SS5      /[        SS5      [        SS5      [        S	S5      /5      [        SS5      [        SS5      [        SS5      [        SS5      /:X  d   e[        [        SS5      [        S	S5      [        SS5      /[        S	S5      [        SS5      [        SS5      /5      [        S	S5      [        SS5      [        SS 5      [        S!S"5      [        SS#5      /:X  d   e[        [        [
        [        S	5      /[        S5      S[        -  S[
        -  /5      [        S5      [        -  S[        S5      [
        -  -   [
        [        -  [        [        S$5      -  -   [        S5      -   [        S	5      [        -  S-   [        S	5      [        S$5      -  /:X  d   e[        S%S&// S'Q5      / S(Q:X  d   e[        S)S*/S+S,/5      / S-Q:X  d   e[        [        S. 5        [        [        S/ 5        g )0Nc              3   P   #    U  H  nS   H  n[        / XS9/ :H  v   M     M     g7f))Nr   r"   N)r   ).0r   r   s      r/   	<genexpr>'test_convolution_fft.<locals>.<genexpr>   s%     YIqy!r1,2y2Is   $&r   rT   rU   r      rY         r   r5   r   r   r         r}   r   r   r   r   i#   0   it   :   i     r5   r    r}   rL   rZ      -   r      i  i_7  i  i  rJ   r!   i	  ic  )i  i  i )iYr i|/aiXl   X i iDioii )l   "$l   m2I l   Pq^$c                  *    [        [        [        5      $ Nr   r   r   rf   r3   r/   r0   &test_convolution_fft.<locals>.<lambda>   s    oa3r3   c                  B    [        [        [        /[        [        /5      $ r   r   rf   r3   r/   r0   r      s    1v1v>r3   )allr   r
   r   r   r   r   r   r   rP   rj   rf   r3   r/   test_convolution_fftr      sD   YR!IYYYYY9i04GGGGA3	*i777Aq69-@@@A!G9q1Q3wi0R!A#XJ>>>A!GQ1Wa!A#a%i88Aq>AaCPQE;Q:RSc22b((3*;aeBh*FQSUWHX[\]`[`ad[dHdef f f HQNHQN;hq!nhWXZ[n^fghjk^l=mn%-b"%5xB7GRTVXIY[cdegh[i$jk k k HQNHQNHQNKhWXZ[n^fghjk^lnvwxz{n|M}~!)!R(2r2BHTSXDY[cdgil[mowxy{}o~ @ @ @ B47+d1gqtQqS-AB!WRZT!WQY"r#b'z0ADG0K,0GBJNDGCGOMM M M D%=*=>DE E E FH-&/ABIJ J J 934
:>?r3   c                  (  ^ ^^ Sm SmSm[        U UU4S j/ S/4 5       5      (       d   e[        S/S/T5      S/:X  d   e[        SS/S	/T5      S
S/:X  d   e[        / SQ/ SQT 5      / SQ:X  d   e[        / SQ/ SQT5      / SQ:X  d   e[        / SQ/ SQT 5      [        / SQ/ SQT5      :X  d   e[        / SQ/ SQT 5      [        / SQ/ SQT5      :X  d   e[        [        U4S j5        [        [        U4S j5        [        [        U 4S j5        g )Nr$   r%   iʚ;c              3   X   >#    U  H  nTTT4  H  n[        / XS 9/ :H  v   M     M!     g7f)r&   Nr   )rt   r   r   r<   r.   rn   s      r/   ru   'test_convolution_ntt.<locals>.<genexpr>   s1     [iRSUVXYQZAr1."4QZ4is   '*r   r   r   r5   r   r       )iy}  i  iv  i  )i}  r\   iT )icigiO4i1iۺij)i9 ie0 ir   )iE  i,S  it  i8  )i  i  ib  i  i  i  i  )r      r}   b   C   )r   r5   r   r    r   )r}   L      N   E   c                  &   > [        SS/SS/T 5      $ )Nr   r   r   r   r   )rn   s   r/   r0   &test_convolution_ntt.<locals>.<lambda>   s    1v1vqAr3   c                  F   > [        [        [        /[        [        /T 5      $ r   r   r   r   )r.   s   r/   r0   r      s    1v1vqAr3   c                  .   > [        [        [        T 5      $ r   r   )r<   s   r/   r0   r      s    oaA6r3   )r   r   r   rj   rP   )r<   r.   rn   s   @@@r/   test_convolution_nttr      s<    	AAA [rA3i[[[[[A3Q'A3...Aq6A3*q"g55557KQO TZ Z Z Z:<VXYZ0Z[ [ [ /!D#$8/1MN N N/1EqI#$8:NPQRS S S :AB
:AB
967r3   c                  2  ^^^^ [        / / 5      / :X  d   e[        / S/5      / :X  d   e[        / SQ/ SQ5      / SQ:X  d   e[        [        SS5      [        SS5      [        SS	5      /S
S[        SS5      /5      [        SS5      [        SS5      [        SS5      [        SS5      /:X  d   eS[        SS	5      [        S	5      [        SS5      SS[        -  -   /n / SQnS	S[        -  -   SS[        -  -   S	[        SS5      S/n[        X5      S[        S	5      -  S-   S[        -  -   S[        S	5      -  [        SS5      -   S[        -  -   S[        S	5      -  [        SS5      -   S[        -  -   S[        S	5      -  [        SS5      -   S[        S	5      -  S -   S![        -  -   [        S"S5      S#[        -  -   S$[        S	5      -  [        S%S5      -   S&[        -  -   S'[        S	5      -  [        S(S5      -   S)[        -  -   /:X  d   e[        X5      [        S*S
5      S+[        -  -   [        S,S5      S-[        -  -   [        S.S
5      S/[        -  -   [        S0S	5      S1[        -  -   S2S3[        -  -   [        S4S5      S5[        -  -   [        S6S
5      S7[        -  -   [        S8S5      S9[        -  -   /:X  d   e[        U S	S  U5      [        S:S5      [        S;-  S-  -   S<[        S=-  S-  -   [        S>S5      [        S?-  S-  -   [        S@SA5      S[        -  -   [        SBS5      SCSD[        -  -   SESE/:X  d   e[	        SF5      u  mmnmmn[        TT/TT/5      TT-  TT-  -   TT-  TT-  -   /:X  d   e[        TTU/TT/5      TT-  TT-  -   TT-  TT-  -   UT-  UT-  /:X  d   e[        TTU/TTU/5      TT-  TT-  -   X4-  -   TT-  TT-  -   TU-  UT-  -   TU-  UT-  -   /:X  d   e[        [        UU4SG j5        [        [        UUUU4SH j5        g )INr   rT   rU   )rL   rx   rz   ry   r   r   r5   r    r   r   r   r   =   rO   i     i  *   )^   3   5   r   rX   ry   rx   r   in     i  rJ      r   i  A   r   i  rx   i  i  i     rX   i"  i	  ry   i\     i  i  iG  i^  i{  i  i  i'  i  i9  is  iE  i  4   i  [   ii%  r!         r   i     8   rL   (   r   u v w x y zc                     > [        T T5      $ r   r   r   s   r/   r0   'test_convolution_fwht.<locals>.<lambda>       .q!4r3   c                  (   > [        TT-  T T-   5      $ r   r   )rk   rl   r   r   s   r/   r0   r      s    .qsAE:r3   )r   r   r   r
   r	   r   rP   )	r@   r,   rB   rm   zrk   rl   r   r   s	        @@@@r/   test_convolution_fwhtr      sq   B#r)))B$***Iy15EEEEXa^Xa^Xa^LqRSU]^_abUcNde%-b!_hr26FQTVYHZ\dehjl\m$no o o 
HQNDGXa^Q1W=A$A	
QqS!ac'1hq!na0AA!baj3&6Q&>$&tAwJ$1C$Cc!e$K$&tAwJ$1B$BRT$I$&tAwJ$1C$C$&tAwJ$4s1u$<$,T2$6Q$>$&tAwJ$1B$BSU$J$&tAwJ$1C$Cc!e$K&M M M M A!htQ&7#a%&?$PQARUXYZUZAZqCE!8D!#4s1u#<dSUlHUY[\L]`cde`eLeqBqD (4"3bd":&< < < < AabE1%(3*:QsU1W*Db1S5QR7lS""Q&b(9BqD(@(2q/SUXZ[\X\S\^_ab*d d d d }-Aq!Q1QFQF+!ac	1Q319/EEEEQ1I1v.	
1qsAaC!A#IqsAaC() ) ) Q1I1ay1	
1qsQS!A#!)QqS1Q3Y!ac	:; ; ; 945
9:;r3   c                    ^^^ [        / / 5      / :X  d   e[        / [        SS5      /5      / :X  d   e[        S[        S-  S-  -   /[        SS5      /5      S[        S-  S-  -   /:X  d   eS[        SS5      [        S5      SS[        -  -   /n / SQnS[        S-  S-  -   SS[        -  -   S[        SS5      S	/n[        X5      S
[        SS5      SS
[        S5      -  -   S[        S5      -  [        SS5      -   S[        -  -   SSSS[        S5      -  -   S[        S5      -  S-   S[        -  -   /:X  d   e[        X5      S[        S-  S-  -   S[        S-  S-  -   S[        S-  S-  -   [        SS5      [        S-  S-  -   SS[        -  -   S[        S -  S-  -   S!S"[        -  -   [        S#S5      S$[        -  -   /:X  d   e[        X5      [        X 5      :X  d   e[        U S S U5      S
[        SS5      S[        S%S5      SSSS&/:X  d   e[        U S S U5      S[        S-  S-  -   S"[        S'-  S	-  -   S[        S(S5      S	SS)S)/:X  d   e[	        S*5      u  mp4mnm[        TX4/TU/5      TT-  TU-  UT-  -   UT-  XE-  /:X  d   e[        TX4T/UT/5      TU-  TT-  X5-  -   XE-  UT-  TU-  -   /:X  d   e[        TU/TUT/5      [        TUT/TU/5      :X  d   e[        [        UU4S+ j5        [        [        U4S, j5        g )-Nr   r   r5   r   r   r   r   )@   G   7   rZ   !      rJ   r   r   i  r   r   i  i@  r   T   rJ   r               i  ie  n   i  i  i     i{  i  i  rH   i  i   i  r~   I      r   r   c                     > [        T T5      $ r   )r   r   r   s   r/   r0   )test_convolution_subset.<locals>.<lambda>%  s    0A6r3   c                  0   > [        [        SS5      T 5      $ Nr   r   )r   r   rk   s   r/   r0   r   &  s    0!QCr3   )r   r   r
   r   r	   r   rP   	r@   r,   rB   rl   rm   r   rk   r   r   s	         @@@r/   test_convolution_subsetr     s   b"%+++b8Aq>"23r999q1Q3q5ykHQN+;<QqSUKKK	
HQNDGQ1W-A$A	
QqSUA!GQA2Aa#HS!,<b2d1g:o(*47
XdA5F(FQ(NPRTV(*RQZDGc9ICPQE9Q(S S S S a#aeAgsQtVAX~(+aeAgxa7H1T6RS87S(+bd
C!C%'M(+bd
HT14EA4M(O O O O
 a#'9!'????aeQ'#q!2xQ'7RRHI I I aeQ'1QYQrT!VQb(91b!QGH H H }-AqQ1q!i!Q0QqS!A#!)QqS!#4NNNNq!lQF3qS!A#)QS!A#!)<= = = q!fq!Qi0&1ay1a&9: : : 967
9CDr3   c                    ^^^ [        / / 5      / :X  d   e[        / [        SS5      /5      / :X  d   e[        S[        S-  S-  -   /[        SS5      /5      S[        S-  S-  -   /:X  d   eS[        SS5      [        S5      SS	[        -  -   /n / S
QnS[        S-  S-  -   SS[        -  -   S[        SS5      S/n[        X5      S[        SS5      SS[        S5      -  -   S[        S5      -  S-   S[        -  -   S[        SS5      SS[        S5      -  -   S[        S5      -  [        SS5      -   S[        -  -   /:X  d   e[        X5      SS[        -  -   SS [        -  -   S![        S"-  S-  -   [        S#S5      [        S$-  S-  -   S%[        S&-  S-  -   S'[        S(-  S-  -   S)[        S*-  S-  -   [        S+S5      S,[        -  -   /:X  d   e[        X5      [        X 5      :X  d   e[        XS S- 5      SS[        -  -   SS [        -  -   S![        S"-  S-  -   [        S#S5      [        S$-  S-  -   S.[        S&-  S-  -   S/[        S(-  S-  -   S0[        S*-  S-  -   [        S1S5      S,[        -  -   /:X  d   e[        XS S- 5      S[        S-  S-  -   [        S2S5      [        S3-  S4-  -   SS5[        S5      -  -   S[        S5      -  [        -  S-  -   S6S7[        S5      -  S-  -   S[        S5      -  [        -  -   [        S8-  S-  -   /:X  d   e[	        S95      u  mp4mnm[        TX4/TU/5      TT-  TU-  UT-  -   X5-  -   UT-  XE-  /:X  d   e[        TX4T/UT/5      TU-  TT-  X5-  -   UT-  -   XE-  UT-  TU-  -   TT-  -   /:X  d   e[        TU/TUT/5      [        TUT/TU/5      :X  d   e[        [        UU4S: j5        [        [        U4S; j5        g )<Nr   r   r5   r   r   r   r   r    r   )B   Q   _   1   %   Y   r   r   H   rJ   r   r   ig  r         i  i;
  r   i  r   6   r   i5  i     ,   i<  i)  i     i  iy  i%  J   iV  ik  i})  rK   i|` i  r!   o   i%  i  i7[  iS  i  r   rH   imi  ir1  r   c                     > [        T T5      $ r   )r   r   s   r/   r0   'test_covering_product.<locals>.<lambda>Q  r   r3   c                  0   > [        [        SS5      T 5      $ r   )r   r   r   s   r/   r0   r   R  s    .x1~qAr3   )r   r   r
   r   r	   r   rP   r   s	         @@@r/   test_covering_productr   )  sZ   B#r)))B!Q 01R777Q1QYK(1a.)9:q1Q3q5ykIII	
HQNDGQ1W-A$A	
QqSUBAIq(1b/26AA!b(4*;R#d1g+=M(+DGd(:T!V(CR(0a(8"r$q'z/(*47
XdA5F(Fa(O&Q Q Q Q
 A!cBqDj$q.(,quQw8JQuWUVY8V(,qtAvuqwqy7H(-"Q8KdSTf8T&V V V V
 A!%5a%;;;;A"v&3A:teAg~)-#a%9KaPUgVWi9W),qtAvtagai7G),qtAvxr7JTRSV7S+U U U U
 A"v&1qs1u9$S!,qvby8!baj.1TRSW9UV;WX=:X 3tAw;r>1BtAwJqL@1U72:M+O O O O }-AqQ1QI1v.qS!A#!)ac/1Q3<= = = QaL1a&1qS!A#)ac/13!ac	AaCHI I I QFQ1I.$aAYA78 8 8 945
9ABr3   c            	        ^^^ [        / / 5      / :X  d   e[        / [        SS5      /5      / :X  d   e[        S[        S-  S-  -   /[        SS5      /5      S[        S-  S-  -   /:X  d   eS[        S5      [        SS5      S[        -  -   SS[        -  -   /n / S	QnS[        S-  S-  -   SS
[        -  -   S[        SS5      S/n[        X5      S[        S5      -  [        SS5      -   S[        -  -   S[        S5      -  S-   S[        -  -   [        SS5      S[        -  -   SS[        -  -   SSSS/:X  d   e[        X5      [        SS5      [        S-  S-  -   [        SS5      S[        -  -   [        SS5      [        SS5      SSSS/:X  d   e[        X5      [        X 5      :X  d   e[        USS  US S 5      [        SS5      [        S -  S-  -   [        S!S5      S"[        -  -   [        S#S5      [        S$S5      SSSS/:X  d   e[        XS S% 5      [        S&S5      S'[        S5      -  -   S[        S5      -  [        -  S-  -   [        S(-  S)-  -   S*S[        S5      -  -   S
[        S5      -  [        -  -   S+[        -  -   [        S,S5      S-[        -  -   S/:X  d   e[	        S.5      u  mp4mnm[        TX4/TU/5      TT-  TU-  -   UT-  -   UT-  -   XE-  -   X5-  SS/:X  d   e[        TX4T/UT/5      TU-  TT-  -   X5-  -   XE-  -   UT-  -   TU-  -   UT-  TT-  -   SS/:X  d   e[        TU/TUT/5      [        TUT/TU/5      :X  d   e[        [        UU4S/ j5        [        [        U4S0 j5        g )1Nr   r   r5   r   r   r   r   r    )r   r   r   r   $   O   ry   r   r   rx      iC  i^     i  i  iI  i@  r   iP  r   i) i1%  iE  iB  i@K  i6  r!   i  i!  i2  i  i,     rH   i  r   ir      r   r   c                     > [        T T5      $ r   )r   r   s   r/   r0   +test_intersecting_product.<locals>.<lambda>x  s    21a8r3   c                  0   > [        T [        SS5      5      $ )Nr    r   )r   r   r   s   r/   r0   r   y  s    21hq!nEr3   )r   r   r
   r   r	   r   rP   r   s	         @@@r/   test_intersecting_productr   U  s	   B'2---Xa^$45;;;QqSUhq!n-=>1qs1u9+MMM	
DGXa^ac)1qs73A$A	
QqSUA!GQB4A%#d1g+q8I*IDQRF*R #DGc 1CE 98C;KdSTf;T #c!eQ1a*9 9 9 9  %(62*>4*I#d1f,hub.A8CQSCTVZ\]_`bc*e e e e  %)=a)CCCC!"q"v.8E23F4PQ3QUB'$q&0(5"2ExPSUWGXZ[]^`acd3f f f f  Sb6*c1%47
2QtAwYq[]BQtVBYN!DG)OaQik1BqD8(3:JRPQT:QSTVV V V }-AqQ1A	Aq62qS1Q3Y1_qs2QS8!#q!DE E E  A!q!f51qsQS13.14qs:AaC!A#Iq!LM M M  AAq	2(!QQF;< < < 989
9EFr3   c                  x   [        S/S/5      S/:X  d   e[        SS/S/5      S/:X  d   e[        / SQ/ SQ5      / SQ:X  d   e[        S// SQ5      / SQ:X  d   e[        SS// SQ5      / SQ:X  d   e[        / S	Q/ S
Q5      / SQ:X  d   e[        / SQ/ SQ5      / SQ:X  d   e[        / SQ/ SQ5      / SQ:X  d   eg )Nr   r   rT   rU   rw   r{   r   r|   )rH   r   r   )r   r5   r   )iU   r   ir~   r}   )r   r   r   r!   )r   r   r!   r   )r   r   r   r   r   r   )ir   r   r   ir   rM   W   )	r   r5   r   r   iY  r}   iii)iWiiii2iie  i  i  iyiK  i֗  im  i  ii)r   rf   r3   r/   test_convolution_intr   |  s    A3$+++Aq6A3'A3...9i04GGGGA3	*i777Aq69-@@@>:6:TTTT=-8<OOOO*,
:: : :r3   N)#sympy.core.numbersr   r   r   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   
sympy.corer   r	   r
   sympy.discrete.convolutionsr   r   r   r   r   r   r   r   sympy.testing.pytestr   	sympy.abcr   r   rR   rq   r   r   r   r   r   r   r   rf   r3   r/   <module>r     sg    0 0 6 9 $ $   ( 22j\L~@<86'<T#EL)CX$GN:r3   