
    MZd@                         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 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 y)    )ERationalpi)exp)sqrt)SsymbolsI)convolutionconvolution_fftconvolution_nttconvolution_fwhtconvolution_subsetcovering_productintersecting_product)raisesxyc                      dt        dd      t        d      t        dd      g g dg dg d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       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   H/usr/lib/python3/dist-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-   r.   z"test_convolution.<locals>.<lambda>!   r/   r0   T)dyadicFc                  "    t         dd      S Nr   T)r!   r3   r(   )r*   r+   s   r-   r.   z"test_convolution.<locals>.<lambda>&       k!QAdC r0   c                  "    t         d      S NT)r%   r3   r(   )r*   r+   ps   r-   r.   z"test_convolution.<locals>.<lambda>'       k!QaE r0   c                  "    t         dd      S r5   r(   ar*   s   r-   r.   z"test_convolution.<locals>.<lambda>(   r6   r0   c                  "    t         d      S r8   r(   )r*   cr9   s   r-   r.   z"test_convolution.<locals>.<lambda>)   r:   r0   )subsetr@   r3   c                  "    t         dd      S )NTrA   r(   r<   s   r-   r.   z"test_convolution.<locals>.<lambda>0   s    k!QtDI r0   c                  "    t         dd      S )NTr2   )r@   r!   r(   )r?   r+   s   r-   r.   z"test_convolution.<locals>.<lambda>1   s    k!QtC r0   c                  "    t         d      S )NT)r@   r%   r(   )r=   r?   r,   s   r-   r.   z"test_convolution.<locals>.<lambda>2   s    k!Qt1E r0   )	r   r   r   r   r   r   	TypeErrorr   r   )r=   r*   r?   r+   r9   r,   s   @@@@@@r-   test_convolutionrF      s=   	
HQNDGXa^4AAA 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Fr0   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   r2   r   cycle)   rL      r   r   r   r   iT i\g  i9w  iL,  iu+  i  iE  i8  r2   iN  iN  i  i;  /      i  i@  i  i	  i  i		  i;Q   i  iui  i  i  i' r#   )r%   rK   r$   )`   iB  ih
  <    )i#  i  i  rR   rS   i?  ix5  z	u v w x yz	p q r s tT)r3   rK   )l   PFn	l   \1AHl   !)l   *<	l   dl   JE8J   uR!    pj$)r@   rK   )l   ^tB   XO rT   rU      Xrl   	)l   @0o l   |	?l   X'9 l   :K>)l   2Q#rV   rW   l   x4* rU   rX   c                  &    t        g dg dd      S )NrH   rI   rY   rJ   r(    r0   r-   r.   z)test_cyclic_convolution.<locals>.<lambda>   s    {9irJ r0   )	r   r   r   lenr   Zeror	   r   
ValueError)r=   r*   uvwr   r   r9   r,   rstr?   r+   s                 r-   test_cyclic_convolutionre   5   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Kr0   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   rH   rI   )r      rM         )r   r2   r   r   )r         rm   r   r   r   r   i#   0   it   :   i     r2   r   rm       rN      -   r      i  i_7  i  i     rY   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   r[   r0   r-   r.   z&test_convolution_fft.<locals>.<lambda>   s    oa3 r0   c                  B    t        t        t        gt        t        g      S r{   r|   r[   r0   r-   r.   z&test_convolution_fft.<locals>.<lambda>   s    1v1v> r0   )allr   r
   r   r   r   r   r   r   rE   r^   r[   r0   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
:>?r0   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   )rh   r   r   r9   r,   rb   s      r-   ri   z'test_convolution_ntt.<locals>.<genexpr>   s6     [RSUVXYQZ[Ar1A."4[4[s   %(r   r   r   r2   r   r      )iy}  i  iv  i  )i}  rP   iT )icigiO4i1iۺij)i9 ie0 ir   )iE  i,S  it  i8  )i  i  ib  i  i  i  i  )r      rm   b   C   )r   r2   r   r   r   )rm   L      N   E   c                  &    t        ddgddg       S )Nr   r   r   r   r   )rb   s   r-   r.   z&test_convolution_ntt.<locals>.<lambda>   s    1v1vqA r0   c                  F    t        t        t        gt        t        g       S r{   r   r   r   )r,   s   r-   r.   z&test_convolution_ntt.<locals>.<lambda>   s    1v1vqA r0   c                  .    t        t        t               S r{   r   )r9   s   r-   r.   z&test_convolution_ntt.<locals>.<lambda>   s    oaA6 r0   )r~   r   r   r^   rE   )r9   r,   rb   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7r0   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   rH   rI   )ru   rj   rl   rk   r   r   r2   r   r   r   r   rw   =      i     i  *   )^   3   5   rw   rL   rk   rj   r   in     i  ry      r   i  A   r   i  rj   i  i  i     rL   i"  i	  rk   i\     i  i  iG  i^  i{  i  i  i'  i  i9  is  iE  i  4   i  [   ii%  rY         rp   i     8   ru   (   r   u v w x y zc                      t               S r{   r   r   s   r-   r.   z'test_convolution_fwht.<locals>.<lambda>       .q!4 r0   c                  (    t        z   z         S r{   r   )r_   r`   r   r   s   r-   r.   z'test_convolution_fwht.<locals>.<lambda>   s    .qsAE: r0   )r   r   r   r
   r	   r   rE   )	r=   r*   r?   ra   zr_   r`   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:;r0   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   r2   r   r   r   r   )@   G   7   rN   !      ry   r   r   i  r   r   i  i@  r   T   ry   r               i  ie  n   i  i  i     i{  i  i  
   i  i   i  rn   I      r   r   c                      t               S r{   )r   r   r   s   r-   r.   z)test_convolution_subset.<locals>.<lambda>  s    0A6 r0   c                  0    t        t        dd             S Nr   r   )r   r   r_   s   r-   r.   z)test_convolution_subset.<locals>.<lambda>  s    0!QC r0   )r   r   r
   r   r	   r   rE   	r=   r*   r?   r`   ra   r   r_   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Dr0   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   r2   r   r   r   r   r   r   )B   Q   _   1   %   Y   r   r   H   ry   r   r   ig  r         i  i;
  r   i  r   6   r   i5  i     ,   i<  i)  i     i  iy  i%  J   iV  ik  i})  "   i|` i  rY   o   i%  i  i7[  iS  i  r   r   imi  ir1  r   c                      t               S r{   )r   r   s   r-   r.   z'test_covering_product.<locals>.<lambda>E  r   r0   c                  0    t        t        dd             S r   )r   r   r   s   r-   r.   z'test_covering_product.<locals>.<lambda>F  s    .x1~qA r0   )r   r   r
   r   r	   r   rE   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Br0   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   r2   r   r   r   r   r   )r   r   r   rq   $   O   rk   r   r   rj      iC  i^     i  i  iI  i@  r   iP  r   i) i1%  iE  iB  i@K  i6  rY   i  i!  i2  i  i,     ir   i  r   ir      r   r   c                      t               S r{   )r   r   s   r-   r.   z+test_intersecting_product.<locals>.<lambda>l  s    21a8 r0   c                  0    t         t        dd            S )Nr   r   )r   r   r   s   r-   r.   z+test_intersecting_product.<locals>.<lambda>m  s    21hq!nE r0   )r   r   r
   r   r	   r   rE   r   s	         @@@r-   test_intersecting_productr   I  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Fr0   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   sympy.testing.pytestr   	sympy.abcr   r   rF   re   r   r   r   r   r   r   r[   r0   r-   <module>r      se    0 0 6 9 $ $@ @ @ ( 'GT\L~@<86'<T#EL)CX$Gr0   