
    sgE                         d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZ d Zd	 Zd
 Zd Zd Zd Zd Z d Z!d Z"y)    )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                     dt        dd      t        d      t        dd      gg dg dg ddt        dd      t        dd      g} t              t              k(  sJ t        d	
      t        d	
      k(  sJ t        d
      t        d
      k(  sJ t        dd  d
      t        dd  d
      k(  sJ ddt              t	              k(  sJ t              t	              k(  sJ t              t	              k(  sJ t        t        fd       t        t        fd       t        d      t              k(  sJ t        d      t              k(  sJ t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        d      t              cxk(  r%t        dd      cxk(  rt        d      k(  sJ  J t        d      t              k(  sJ t        t        fd       t        t        fd       t        t        fd       t        dgdg      t        dgdg      k(  sJ t              t              k(  sJ t        t        dd      gt        dd      g      t        dd      gk(  sJ t        |       dd t        d!d"      t        d#d      t        d$d      t        d%d      t        d&d"      t        d'd      gk(  sJ y )(N            	   r   r      r      )r   r   r   r      )i  i  i  i  r   dps ;L  primec                  "    t         d      S )Nr   r#   r'   r   bdqs   Y/var/www/html/venv/lib/python3.12/site-packages/sympy/discrete/tests/test_convolutions.py<lambda>z"test_convolution.<locals>.<lambda>"       k!QAQ?     c                  "    t         d      S )N   r)   r*   r+   s   r/   r0   z"test_convolution.<locals>.<lambda>#   r1   r2   T)dyadicFc                  "    t         dd      S Nr   T)r#   r5   r*   )r,   r-   s   r/   r0   z"test_convolution.<locals>.<lambda>(       k!QAdC r2   c                  "    t         d      S NT)r'   r5   r*   )r,   r-   ps   r/   r0   z"test_convolution.<locals>.<lambda>)       k!QaE r2   c                  "    t         dd      S r7   r*   ar,   s   r/   r0   z"test_convolution.<locals>.<lambda>*   r8   r2   c                  "    t         d      S r:   r*   )r,   cr;   s   r/   r0   z"test_convolution.<locals>.<lambda>+   r<   r2   )subsetrB   r5   c                  "    t         dd      S )NTrC   r*   r>   s   r/   r0   z"test_convolution.<locals>.<lambda>2   s    k!QtDI r2   c                  "    t         dd      S )NTr4   )rB   r#   r*   )rA   r-   s   r/   r0   z"test_convolution.<locals>.<lambda>3   s    k!QtC r2   c                  "    t         d      S )NT)rB   r'   r*   )r?   rA   r.   s   r/   r0   z"test_convolution.<locals>.<lambda>4   s    k!Qt1E r2   r   r   r   i
         "       +   q      )
r   r   r   r   r   r   	TypeErrorr   r   r   )er?   r,   rA   r-   r;   r.   s    @@@@@@r/   test_convolutionrQ      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 2r2   c            
      
   dt        dd      t        d      t        dd      g} g d}t        g dg dd	      t        g dg dd	      cxk(  rt        g dg d      k(  sJ  J t        g dg dd	      g d
k(  sJ t        dd      t        dd      t        dd      t        dd      t        dd      g} t        dd      t        dd      t        dd      t        dd      g}t        | |d	      t        | |t        |       t        |      z   dz
  	      k(  sJ t        | |d	      t        dd      t        dd      t        dd      t        dd      gk(  sJ t        | |d	      t        dd      t        dd      t        dd      t        dd      t        dd       t        d!d"      gk(  sJ t        | |d	      t        | |d	      t        j
                  gz   k(  sJ d#d$t	        d%      d&d'g} t	        d(      d)d*d+g}t        | |d,d-      t        | |d,d-      cxk(  rt        | |d,.      k(  sJ  J t        | |d,d-      g d/k(  sJ t        | |d,d-      g d0k(  sJ t        | |d,d-      t        | |d,.      dgz   k(  sJ t        d1      \  }}}}}t        d2      \  }}}	}
}|||||g}|||	|
|g}t        | |d3d4      g d5k(  sJ t        | |d3d4      g d6k(  sJ t        ||d3d4      ||z  ||z  z   ||z  z   |	|z  z   |
|z  z   ||z  z   ||z  z   ||z  ||z  z   ||z  z   |	|z  z   |
|z  z   ||z  z   ||z  ||z  z   |	|z  z   |	|z  z   |
|z  z   ||z  z   ||z  ||z  z   |	|z  z   |
|z  z   |
|z  z   ||z  z   gk(  sJ t        ||d3d4      ||z  ||z  z   |	|z  z   |	|z  z   |
|z  z   ||z  z   ||z  z   ||z  ||z  z   |	|z  z   |
|z  z   |
|z  z   ||z  z   ||z  ||z  z   |	|z  z   |
|z  z   ||z  ||z  z   |	|z  z   |
|z  z   ||z  ||z  z   ||z  ||z  z   gk(  sJ t        | |d3d7      g d8k(  sJ t        | dd  |d3d7      g d9k(  sJ t        | |d d: d3d7      g d;k(  sJ t        ||d3d7      ||z  ||z  z   ||z  z   |	|z  z   |	|z  z   |
|z  z   ||z  z   ||z  ||z  z   ||z  z   |
|z  z   ||z  z   ||z  z   ||z  ||z  z   |	|z  z   ||z  z   gk(  sJ t        ||d3d7      ||z  ||z  z   ||z  z   ||z  ||z  z   |	|z  z   ||z  z   ||z  |	|z  z   |
|z  z   ||z  z   ||z  ||z  z   |	|z  z   |
|z  z   ||z  ||z  z   gk(  sJ t        t        d<        y )=Nr   r   r   r   r   r   r   r   r   r   r4   r   cycle)   rW      r   r   r    r   iT i\g  i9w  iL,  iu+  i  iE  i8  r4   iN  iN  i  i;  /      i  i@  i  i	  i  i		  i;Q   i  iui  i  i  i' r%   )r'   rV   r&   )`   iB  ih
  <    )i#  i  i  r]   r^   i?  ix5  z	u v w x yz	p q r s tT)r5   rV   )l   PFn	l   \1AHl   !)l   *<	l   dl   JE8J   uR!    pj$)rB   rV   )l   ^tB   XO r_   r`      Xrl   	)l   @0o l   |	?l   X'9 l   :K>r!   )l   2Q#ra   rb   l   x4* r`   rc   c                  &    t        g dg dd      S )NrS   rT   r!   rU   r*    r2   r/   r0   z)test_cyclic_convolution.<locals>.<lambda>   s    {9irJ r2   )	r   r   r   lenr   Zeror	   r   
ValueError)r?   r,   uvwr   r   r;   r.   rstrA   r-   s                 r/   test_cyclic_convolutionro   A   s;   	
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q!1%1CFSVOa$789 9 9 q!1%(5%*@(5RWBX$UD18D$3G*I I I I q!1%(5%*@(3PSBTV^_aceVf$T40(5$2GRVX\I]*_ _ _ _ q!1%Aq*affX56 6 6 
w$1A	
55%(Aq!<q91L:6Aq56 6 6 6 6 q!<q9 >Q Q Q Q q!<q9 >S S S S q!<q91L1QC78 8 8 K(MAq!QK(MAq!Q	
Aq!QA	
Aq!QAq!D2FG G G q!D2 7H H H H q!D2qS1Q3Y1_qs"QqS(1Q3.14qS1Q3Y1_qs"QqS(1Q3.qS1Q3Y1_qs"QqS(1Q3.qS1Q3Y1_qs"QqS(1Q3.00 0 0 q!D2qS1Q3Y1_qs"QqS(1Q3.14qS1Q3Y1_qs"QqS(1Q3.qS1Q3Y1_qs"qS1Q3Y1_qs"qS1Q3YqS1Q3Y   q!D2 72 2 2 2 quaA6EF F F q!CR&Q7 <Q Q Q Q q!D2qS1Q3Y1_qs"QqS(1Q3.14qS1Q3Y1_qs"QqS(1Q3.qS1Q3Y1_qs"$$ $ $
 q!D2qS1Q3Y1_qS1Q3Y1_qs"qS1Q3Y1_qs"qS1Q3Y1_qs"qS1Q3Y	   :JKr2   c            	      V   t        d g dgfD              sJ t        g dg d      g dk(  sJ t        dgg d      g dk(  sJ t        ddgg d      g dk(  sJ t        dd	t        z  z   gd	dt        z  z   g      d
dt        z  z   gk(  sJ t        dd	t        z  z   ddt        z  z   ddt        z  dz  z   gt        d	d      dt        z  dz  z   g      t        dd      t        dz  dz  z   t        dd      t        dz  dz  z   t        dd      t        dz  dz  z   gk(  sJ t        t        dd      t        dd      gt        dd      t        dd      t        d	d      g      t        dd      t        dd      t        dd      t        dd      gk(  sJ t        t        dd      t        d	d      t        dd      gt        d	d      t        dd      t        dd      g      t        d	d      t        dd      t        dd       t        d!d"      t        dd#      gk(  sJ t        t        t
        t        d	      gt        d      dt        z  dt
        z  g      t        d      t        z  dt        d      t
        z  z   t
        t        z  t        t        d$      z  z   t        d      z   t        d	      t        z  dz   t        d	      t        d$      z  gk(  sJ t        d%d&gg d'      g d(k(  sJ t        d)d*gd+d,g      g d-k(  sJ t        t        d.        t        t        d/        y )0Nc              3   L   K   | ]  }d D ]  }t        g ||      g k(     yw))Nr   r"   N)r   ).0r   r   s      r/   	<genexpr>z'test_convolution_fft.<locals>.<genexpr>   s+     YqyY!r1!,2Y2Ys   "$r   rS   rT   r      rX         r   r4   r   r   r         rz   r   r   r   r   i#   0   it   :   i     r4   r    rz   rK   rY      -   r      i  i_7  i  i  rI   r!   i	  ic  )i  i  i )iYr i|/aiXl   X i iDioii )l   "$l   m2I l   Pq^$c                  *    t        t        t              S Nr   r   r   re   r2   r/   r0   z&test_convolution_fft.<locals>.<lambda>   s    oa3 r2   c                  B    t        t        t        gt        t        g      S r   r   re   r2   r/   r0   z&test_convolution_fft.<locals>.<lambda>   s    1v1v> r2   )allr   r
   r   r   r   r   r   r   rO   rh   re   r2   r/   test_convolution_fftr      sA   YR!I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
:>?r2   c                  
    d ddt         fdg dgfD              sJ t        dgdg      dgk(  sJ t        ddgd	g      d
dgk(  sJ t        g dg d       g dk(  sJ t        g dg d      g dk(  sJ t        g dg d       t        g dg d      k(  sJ t        g dg d       t        g dg d      k(  sJ t        t        fd       t        t        fd       t        t         fd       y )Nr$   r%   iʚ;c              3   T   K   | ]  }fD ]  }t        g ||       g k(    ! yw)r&   Nr   )rr   r   r   r;   r.   rl   s      r/   rs   z'test_convolution_ntt.<locals>.<genexpr>   s6     [RSUVXYQZ[Ar1A."4[4[s   %(r   r   r   r4   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      rz   b   C   )r   r4   r   r    r   )rz   L      N   E   c                  &    t        ddgddg       S )Nr   r   r   r   r   )rl   s   r/   r0   z&test_convolution_ntt.<locals>.<lambda>   s    1v1vqA r2   c                  F    t        t        t        gt        t        g       S r   r   r   r   )r.   s   r/   r0   z&test_convolution_ntt.<locals>.<lambda>   s    1v1vqA r2   c                  .    t        t        t               S r   r   )r;   s   r/   r0   z&test_convolution_ntt.<locals>.<lambda>   s    oaA6 r2   )r   r   r   rh   rO   )r;   r.   rl   s   @@@r/   test_convolution_nttr      s9    	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7r2   c                      t        g g       g k(  sJ t        g dg      g k(  sJ t        g dg d      g dk(  sJ t        t        dd      t        dd      t        dd	      gd
dt        dd      g      t        dd      t        dd      t        dd      t        dd      gk(  sJ dt        dd	      t        d	      t        dd      ddt        z  z   g} g d}d	dt        z  z   ddt        z  z   d	t        dd      dg}t        | |      dt        d	      z  dz   dt        z  z   dt        d	      z  t        dd      z   dt        z  z   dt        d	      z  t        dd      z   dt        z  z   dt        d	      z  t        dd      z   dt        d	      z  d z   d!t        z  z   t        d"d      d#t        z  z   d$t        d	      z  t        d%d      z   d&t        z  z   d't        d	      z  t        d(d      z   d)t        z  z   gk(  sJ t        ||      t        d*d
      d+t        z  z   t        d,d      d-t        z  z   t        d.d
      d/t        z  z   t        d0d	      d1t        z  z   d2d3t        z  z   t        d4d      d5t        z  z   t        d6d
      d7t        z  z   t        d8d      d9t        z  z   gk(  sJ t        | d	d  |      t        d:d      t        d;z  dz  z   d<t        d=z  dz  z   t        d>d      t        d?z  dz  z   t        d@dA      dt        z  z   t        dBd      dCdDt        z  z   dEdEgk(  sJ t	        dF      \  }}t        gg      z  z  z   z  z  z   gk(  sJ t        |gg      z  z  z   z  z  z   |z  |z  gk(  sJ t        |g|g      z  z  z   ||z  z   z  z  z   |z  |z  z   |z  |z  z   gk(  sJ t        t        fdG       t        t        fdH       y )INr   rS   rT   )rK   ru   rw   rv   r   r   r4   r    r   r   r   r   =   rN   i     i  *   )^   3   5   r   rW   rv   ru   r   in     i  rI      r   i  A   r   i  ru   i  i  i     rW   i"  i	  rv   i\     i  i  iG  i^  i{  i  i  i'  i  i9  is  iE  i  4   i  [   ii%  r!         r}   i     8   rK   (   r   u v w x y zc                      t               S r   r   r   s   r/   r0   z'test_convolution_fwht.<locals>.<lambda>       .q!4 r2   c                  (    t        z   z         S r   r   )ri   rj   r   r   s   r/   r0   z'test_convolution_fwht.<locals>.<lambda>   s    .qsAE: r2   )r   r   r   r
   r	   r   rO   )	r?   r,   rA   rk   zri   rj   r   r   s	        @@@@r/   test_convolution_fwhtr      sw   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Aq!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 Aq!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QqS!A#!)QqS1Q3Y!ac	:; ; ; 945
9:;r2   c                     t        g g       g k(  sJ t        g t        dd      g      g k(  sJ t        dt        dz  dz  z   gt        dd      g      dt        dz  dz  z   gk(  sJ dt        dd      t        d      ddt        z  z   g} g d}dt        dz  dz  z   ddt        z  z   dt        dd      d	g}t        | |      d
t        dd      dd
t        d      z  z   dt        d      z  t        dd      z   dt        z  z   ddddt        d      z  z   dt        d      z  dz   dt        z  z   gk(  sJ t        ||      dt        dz  dz  z   dt        dz  dz  z   dt        dz  dz  z   t        dd      t        dz  dz  z   ddt        z  z   dt        d z  dz  z   d!d"t        z  z   t        d#d      d$t        z  z   gk(  sJ t        | |      t        ||       k(  sJ t        | d d |      d
t        dd      dt        d%d      dddd&gk(  sJ t        | d d |      dt        dz  dz  z   d"t        d'z  d	z  z   dt        d(d      d	dd)d)gk(  sJ t	        d*      \  }}}t        ||g|g      z  |z  |z  z   |z  ||z  gk(  sJ t        ||g|g      |z  z  ||z  z   ||z  |z  |z  z   gk(  sJ t        |g|g      t        |g|g      k(  sJ t        t        fd+       t        t        fd,       y )-Nr   r   r4   r   r   r   r   )@   G   7   rY   !      rI   r   r   i  r   r   i  i@  r   T   rI   r               i  ie  n   i  i  i     i{  i  i  rG   i  i   i  r{   I      r   r   c                      t               S r   )r   r   r   s   r/   r0   z)test_convolution_subset.<locals>.<lambda>%  s    0A6 r2   c                  0    t        t        dd             S Nr   r   )r   r   ri   s   r/   r0   z)test_convolution_subset.<locals>.<lambda>&  s    0!QC r2   )r   r   r
   r   r	   r   rO   	r?   r,   rA   rj   rk   r   ri   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!Q'????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 }-Aq!Q1q!Qi!Q0QqS!A#!)QqS!A#4NNNNq!QlQF3qS!A#!)QqS!A#!)<= = = q!fq!Qi0&1ay1a&9: : : 967
9CDr2   c                     t        g g       g k(  sJ t        g t        dd      g      g k(  sJ t        dt        dz  dz  z   gt        dd      g      dt        dz  dz  z   gk(  sJ dt        dd      t        d      dd	t        z  z   g} g d
}dt        dz  dz  z   ddt        z  z   dt        dd      dg}t        | |      dt        dd      ddt        d      z  z   dt        d      z  dz   dt        z  z   dt        dd      ddt        d      z  z   dt        d      z  t        dd      z   dt        z  z   gk(  sJ t        ||      ddt        z  z   dd t        z  z   d!t        d"z  dz  z   t        d#d      t        d$z  dz  z   d%t        d&z  dz  z   d't        d(z  dz  z   d)t        d*z  dz  z   t        d+d      d,t        z  z   gk(  sJ t        | |      t        ||       k(  sJ t        ||d d-       ddt        z  z   dd t        z  z   d!t        d"z  dz  z   t        d#d      t        d$z  dz  z   d.t        d&z  dz  z   d/t        d(z  dz  z   d0t        d*z  dz  z   t        d1d      d,t        z  z   gk(  sJ t        | |d d-       dt        dz  dz  z   t        d2d      t        d3z  d4z  z   dd5t        d      z  z   dt        d      z  t        z  dz  z   d6d7t        d      z  dz  z   dt        d      z  t        z  z   t        d8z  dz  z   gk(  sJ t	        d9      \  }}}t        ||g|g      z  |z  |z  z   ||z  z   |z  ||z  gk(  sJ t        ||g|g      |z  z  ||z  z   |z  z   ||z  |z  |z  z   z  z   gk(  sJ t        |g|g      t        |g|g      k(  sJ t        t        fd:       t        t        fd;       y )<Nr   r   r4   r   r   r   r   r    r   )B   Q   _   1   %   Y   r   r   H   rI   r   r   ig  r         i  i;
  r   i  r   6   r   i5  i     ,   i<  i)  i     i  iy  i%  J   iV  ik  i})  rJ   i|` i  r!   o   i%  i  i7[  iS  i  r   rG   imi  ir1  r   c                      t               S r   )r   r   s   r/   r0   z'test_covering_product.<locals>.<lambda>Q  r   r2   c                  0    t        t        dd             S r   )r   r   r   s   r/   r0   z'test_covering_product.<locals>.<lambda>R  s    .x1~qA r2   )r   r   r
   r   r	   r   rO   r   s	         @@@r/   test_covering_productr   )  st   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Aq!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
 Aq!cBqDj$q.(,quQw8JQuWUVY8V(,qtAvuqwqy7H(-"Q8KdSTf8T&V V V V
 Aq!%5a%;;;;Aq"v&3A:teAg~)-#a%9KaPUgVWi9W),qtAvtagai7G),qtAvxr7JTRSV7S+U U U U
 Aq"v&1qs1u9$S!,qvby8!baj.1TRSW9UV;WX=:X 3tAw;r>1BtAwJqL@1U72:M+O O O O }-Aq!Q1Q1I1v.qS!A#!)ac/1Q3!<= = = Q1aL1a&1qS!A#!)ac/1Q3!ac	AaCHI I I QFQ1I.$aAYA78 8 8 945
9ABr2   c            	         t        g g       g k(  sJ t        g t        dd      g      g k(  sJ t        dt        dz  dz  z   gt        dd      g      dt        dz  dz  z   gk(  sJ dt        d      t        dd      dt        z  z   ddt        z  z   g} g d	}dt        dz  dz  z   dd
t        z  z   dt        dd      dg}t        | |      dt        d      z  t        dd      z   dt        z  z   dt        d      z  dz   dt        z  z   t        dd      dt        z  z   ddt        z  z   ddddgk(  sJ t        ||      t        dd      t        dz  dz  z   t        dd      dt        z  z   t        dd      t        dd      ddddgk(  sJ t        | |      t        ||       k(  sJ t        |dd  |d d       t        dd      t        d z  dz  z   t        d!d      d"t        z  z   t        d#d      t        d$d      ddddgk(  sJ t        | |d d%       t        d&d      d't        d      z  z   dt        d      z  t        z  dz  z   t        d(z  d)z  z   d*dt        d      z  z   d
t        d      z  t        z  z   d+t        z  z   t        d,d      d-t        z  z   dgk(  sJ t	        d.      \  }}}t        ||g|g      z  |z  z   |z  z   |z  z   ||z  z   ||z  ddgk(  sJ t        ||g|g      |z  z  z   ||z  z   ||z  z   |z  z   |z  z   |z  z  z   ddgk(  sJ t        |g|g      t        |g|g      k(  sJ t        t        fd/       t        t        fd0       y )1Nr   r   r4   r   r   r   r   r    )r   r   r   r~   $   O   rv   r   r   ru      iC  i^     i  i  iI  i@  r   iP  r   i) i1%  iE  iB  i@K  i6  r!   i  i!  i2  i  i,     rG   i  r   ir      r   r   c                      t               S r   )r   r   s   r/   r0   z+test_intersecting_product.<locals>.<lambda>x  s    21a8 r2   c                  0    t         t        dd            S )Nr    r   )r   r   r   s   r/   r0   z+test_intersecting_product.<locals>.<lambda>y  s    21hq!nE r2   )r   r   r
   r   r	   r   rO   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1%#d1g+q8I*IDQRF*R #DGc 1CE 98C;KdSTf;T #c!eQ1a*9 9 9 9  1%(62*>4*I#d1f,hub.A8CQSCTVZ\]_`bc*e e e e  1%)=a)CCCC!"q"v.8E23F4PQ3QUB'$q&0(5"2ExPSUWGXZ[]^`acd3f f f f  1Sb6*c1%47
2QtAwYq[]BQtVBYN!DG)OaQik1BqD8(3:JRPQT:QSTVV V V }-Aq!Q1Aq	Aq62qS1Q3Y1_qs2QqS8!A#q!DE E E  Aq!q!f51qsQqS1Q3.14qs:AaC!A#Iq!LM M M  AAq	2(!QQF;< < < 989
9EFr2   c                  h   t        dgdg      dgk(  sJ t        ddgdg      dgk(  sJ t        g dg d      g dk(  sJ t        dgg d      g dk(  sJ t        ddgg d      g dk(  sJ t        g d	g d
      g dk(  sJ t        g dg d      g dk(  sJ t        g dg d      g dk(  sJ y )Nr   r   rS   rT   rt   rx   r   ry   )rG   r   r   )r   r4   r   )iU   r}   ir{   rz   )r   r   r   r!   )r   r   r!   r   )r   r   r   r   r   r   )ir   r   r   ir   rL   W   )	r   r4   r   r   iY  rz   iii)iWiiii2iie  i  i  iyiK  i֗  im  i  ii)r   re   r2   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*,
:: : :r2   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   rQ   ro   r   r   r   r   r   r   r   re   r2   r/   <module>r      sg    0 0 6 9 $ $   ( 22j\L~@<86'<T#EL)CX$GN:r2   