o
    oh                     @   s6  d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF ddlGmHZH ddlImJZJ ddlKmLZLmMZMmNZN ddlOmPZP d	d
 eJ D \ZQZRZSZTZUZVZWeeeQdeNeNdddeNZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zad d! Zbd"d# Zcd$d% Zdd&d' Zed(d) Zfd*d+ Zgd,d- Zhd.d/ Zid0d1 Zjd2d3 Zkd4d5 Zld6d7 Zmd8d9 Znd:d; Zod<d= Zpd>d? Zqd@dA ZrdBdC ZsdDdE ZtdFdG ZudHdI ZvdJdK ZwdLdM ZxdNdO ZydPdQ ZzdRdS Z{dTdU Z|dVdW Z}dXdY Z~dZd[ Zd\d] Zd^d_ Zd`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Zdrds ZdtS )uz4Tests for dense recursive polynomials' arithmetics.     )GROUND_TYPES)
dup_normal
dmp_normal)@dup_add_termdmp_add_termdup_sub_termdmp_sub_termdup_mul_termdmp_mul_termdup_add_grounddmp_add_grounddup_sub_grounddmp_sub_grounddup_mul_grounddmp_mul_grounddup_quo_grounddmp_quo_grounddup_exquo_grounddmp_exquo_ground
dup_lshift
dup_rshiftdup_absdmp_absdup_negdmp_negdup_adddmp_adddup_subdmp_subdup_muldmp_muldup_sqrdmp_sqrdup_powdmp_powdup_add_muldmp_add_muldup_sub_muldmp_sub_muldup_pdivdup_premdup_pquo
dup_pexquodmp_pdivdmp_premdmp_pquo
dmp_pexquo
dup_rr_div
dmp_rr_div
dup_ff_div
dmp_ff_divdup_divdup_remdup_quo	dup_exquodmp_divdmp_remdmp_quo	dmp_exquodup_max_normdmp_max_normdup_l1_normdmp_l1_normdup_l2_norm_squareddmp_l2_norm_squared
dup_expand
dmp_expand)ExactQuotientFailed)f_polys)FFZZQQ)raisesc                 C   s   g | ]}|  qS  )to_dense).0frK   rK   u/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/polys/tests/test_densearith.py
<listcomp>1   s    rP            c                  C   s  t g t} t| tddtt g tksJ t| tddtt dgtks&J t| tddtt ddgtks8J t| tddtt g dtksJJ t g dt} t| tddtt g dtkscJ t| tddtt g dtksuJ t| tddtt g dtksJ t| tdd	tt g d
tksJ t| tddtt g dtksJ t| tddtt g dtksJ t| tddtt g dtksJ t| tddtt ddgtksJ d S )Nr   rR   rQ   rR   r   r   rR   rR   rR   )rR   rR   rQ   )rR   rQ   rR   )rQ   rR   rR      )rR   rR   rR   rR      )rR   r   rR   rR   rR      )rR   r   r   rR   rR   rR      )rR   r   r   r   rR   rR   rR   )r   rH   r   rN   rK   rK   rO   test_dup_add_term4   $   
 "$$$$$$$$(r\   c                   C      t tdtdtdgtdddtttdtdtdgtddtks'J t tg gddttks4J t tg gddttksAJ d S NrR   rQ   r   rV   )r   rH   r   f_0F_0rI   rK   rK   rK   rO   test_dmp_add_termL   
   $"rb   c                  C   s  t g t} t| tddtt g tksJ t| tddtt dgtks&J t| tddtt ddgtks8J t| tddtt g dtksJJ t g dt} t| tddtt g dtkscJ t| tddtt g dtksuJ t| tddtt g d	tksJ t| tdd
tt g dtksJ t| tddtt g dtksJ t| tddtt g dtksJ t| tddtt g dtksJ t| tddtt ddgtksJ d S )Nr   rR   rZ   rQ   )rZ   r   r   rU   )rR   rR   rZ   )rR   rZ   rR   )rZ   rR   rR   rV   )rZ   rR   rR   rR   rW   )rZ   r   rR   rR   rR   rX   )rZ   r   r   rR   rR   rR   rY   )rZ   r   r   r   rR   rR   rR   )r   rH   r   r[   rK   rK   rO   test_dup_sub_termS   r]   rd   c                   C   r^   r_   )r   rH   r   r`   ra   rI   rK   rK   rK   rO   test_dmp_sub_termk   rc   re   c                  C   s   t g t} t| tddtt g tksJ t ddgt} t| tddtt g tks,J t g dt} t| tddtt g dtksEJ t| tddtt g dtksWJ t| tddtt g dtksiJ t| tddtt g d	tks{J d S )
NrQ   rV   rR   r   rR   rQ   rV   rQ   rW   rY   )rQ   rW   rY   r   )rQ   rW   rY   r   r   )rQ   rW   rY   r   r   r   )r   rH   r	   r[   rK   rK   rO   test_dup_mul_termr   s   
  $$$(rh   c                   C   s  t tdtdtdgtdddtttdtdtdgtddtks'J t g gtdgddtg gks8J t tdggg ddtg gksIJ t tdtdgtdggtdgddttdtdgtdgg g gkspJ t g gtddgddtg gksJ t tddggg ddtg gksJ t tddtddgtddggtddgddttddtddgtddgg g gksJ d S )	NrR   rQ   rV   r   rW   rY   rX      )r
   rH   r	   rI   rK   rK   rK   rO   test_dmp_mul_term   s   $"""*$$2"rj   c                  C   8   t g d} t g d}t| t dt |ksJ d S )NrR   rQ   rV   rW   )rR   rQ   rV      rW   )rH   mapr   rN   grK   rK   rO   test_dup_add_ground      rq   c                  C   sR   t dgdgdgdgg} t dgdgdgdgg}t| t ddt |ks'J d S )NrR   rQ   rV   rW   rm   )rH   rn   r   ro   rK   rK   rO   test_dmp_add_ground   s   rs   c                  C   rk   )Nrl   )rR   rQ   rV   r   rW   )rH   rn   r   ro   rK   rK   rO   test_dup_sub_ground   rr   rt   c                  C   sP   t dgdgdgdgg} t dgdgdgg g}t| t ddt |ks&J d S )NrR   rQ   rV   rW   )rH   rn   r   ro   rK   rK   rO   test_dmp_sub_ground   s   ru   c                  C   sz   t g t} t| tdtt g tksJ t g dt} t| tdtt g tks*J t| tdtt g dtks;J d S )NrQ   rf   r   rg   )r   rH   r   r[   rK   rK   rO   test_dup_mul_ground   s
   
&rv   c                	   C   s  t ttddttdtdtdgtdggtdggtdtdtdgtdtdtdgtdgggks:J t ttdddttddtddtd	dgtddggtd	dggtddtd
dtddgtddtddtddgtddgggksJ d S )NrQ   rW   rY   rm   
      rR      rV   rX   )r   r`   rH   ra   rI   rK   rK   rK   rO   test_dmp_mul_ground   s   
2
&*
rz   c                  C   s$  t tdd  tg t} t| tdttg tksJ tg dt} t| tdt| ks.J t| tdttg dtks?J t| tdttg dtksPJ tg dt} t| tdt| kscJ t| tdttdtdtd	gksxJ t| td
ttdd
tdd
tdd
gksJ d S )Nc                   S      t tg dttdtS Nrf   r   )r   r   rH   rK   rK   rK   rO   <lambda>   
   
 z%test_dup_quo_ground.<locals>.<lambda>rV   rY   rQ   rm   rR   rQ   rV   rR   rW   )rQ   r   rQ   rW   rS   rY   rm   )rJ   ZeroDivisionErrorr   rH   r   rI   r[   rK   rK   rO   test_dup_quo_ground   s   
""*4r   c                  C   s  t tdd  t tdd  tg t} t| tdttg tks"J tg dt} t| tdt| ks5J t| tdttg dtksFJ tg dt} t| tdt| ksYJ t| tdttdtdtd	gksnJ t| td
ttdd
tdd
tdd
gksJ d S )Nc                   S   r{   r|   r   r   rH   rK   rK   rK   rO   r}      r~   z'test_dup_exquo_ground.<locals>.<lambda>c                   S   r{   )Nrf   rV   r   rK   rK   rK   rO   r}      r~   rV   r   rR   rQ   r   rW   rS   rY   rm   )rJ   r   rE   r   rH   r   rI   r[   rK   rK   rO   test_dup_exquo_ground   s   
"*4r   c                  C   s   t dgdgdggdt} t| tddt| ksJ t| tddtt dgdgdggdtks0J t t| tddtdtt dgg dggdtksJJ d S NrY   rQ   rm   rR   rV   rW   )r   rH   r   r[   rK   rK   rO   test_dmp_quo_ground   s   r   c                  C   sd   t dgdgdggdt} t| tddt| ksJ t| tddtt dgdgdggdtks0J d S r   )r   rH   r   r[   rK   rK   rO   test_dmp_exquo_ground  s   r   c                   C   s2   t g dtg ks
J t dgdtg dksJ d S )NrV   rR   rR   r   r   r   )r   rH   rK   rK   rK   rO   test_dup_lshift	     r   c                   C   s2   t g dtg ks
J t g ddtdgksJ d S )NrV   r   rR   )r   rH   rK   rK   rK   rO   test_dup_rshift  r   r   c                   C   s   t g tg ks	J t tdgttdgksJ t tdgttdgks'J t tdtdtdgttdtdtdgksBJ t g tg ksKJ t tddgttddgks\J t tddgttddgksmJ t tddtddtddgttddtddtddgksJ d S )NrR   rS   rZ   rQ   rV   )r   rH   rI   rK   rK   rK   rO   test_dup_abs  s   6""r   c                   C   s(  t tdgdttdgksJ t tddgdttddgks"J t g ggdtg ggks0J t tdgggdttdgggksDJ t tdgggdttdgggksXJ t g ggdtg ggksfJ t tddgggdttddgggks|J t tddgggdttddgggksJ d S NrZ   r   rR   rQ   r   rS   	   )r   rH   rI   rK   rK   rK   rO   test_dmp_abs       $((,0r   c                   C   s   t g tg ks	J t tdgttdgksJ t tdgttdgks'J t tdtdtdgttdtdtdgksBJ t g tg ksKJ t tddgttddgks\J t tdd	gttdd	gksmJ t tddtddtddgttddtddtddgksJ d S )
NrR   rZ   r   rS   rQ   rV   r   )r   rH   rI   rK   rK   rK   rO   test_dup_neg-  s    6""r   c                   C   s(  t tdgdttdgksJ t tddgdttddgks"J t g ggdtg ggks0J t tdgggdttdgggksDJ t tdgggdttdgggksXJ t g ggdtg ggksfJ t tddgggdttddgggks|J t tddgggdttddgggksJ d S r   )r   rH   rI   rK   rK   rK   rO   test_dmp_neg:  r   r   c                   C   s  t g g tg ks
J t tdgg ttdgksJ t g tdgttdgks*J t tdgtdgttdgks=J t tdgtdgttdgksPJ t tdtdgtdgttdtdgksiJ t tdgtdtdgttdtdgksJ t tdtdtdgtdtdtdgttdtdtdgksJ t g g tg ksJ t tddgg ttddgksJ t g tddgttddgksJ t tdd	gtdd	gttddgksJ t tdd	gtddgttdd	gksJ t tddtddgtdgttddtd
dgks J t tdgtddtddgt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tddtddtddgksmJ d S )NrR   rQ   rV   rm   r   rw         rW   rX   rS   )r   rH   rI   rK   rK   rK   rO   test_dup_addG  s@     &&22
$$,.<<r   c                   C   st  t tdtdgtdgdtttdtdgtdgtks!J t tddtddgtdgdtttddtddgtdgtksFJ t g ggg ggdtg ggksWJ t tdgggg ggdttdgggksnJ t g ggtdgggdttdgggksJ t tdgggtdgggdttdgggksJ t tdgggtdgggdttdgggksJ t g ggg ggdtg ggksJ t tddgggg ggdttddgggksJ t g ggtddgggdttddgggksJ t tddgggtddgggdttddgggksJ t tddgggtddgggdttddgggks8J d S )NrR   rQ   r   rV   rS   )r   rH   r   rI   rK   rK   rK   rO   test_dmp_adda      " "..44"22<@r   c                   C   s  t g g tg ks
J t tdgg ttdgksJ t g tdgttdgks*J t tdgtdgtg ks:J t tdgtdgttdgksMJ t tdtdgtdgttdtdgksfJ t tdgtdtdgttdtdgksJ t tdtdtdgtdtdtdgttdtd	td
gksJ t g g tg ksJ t tddgg ttddgksJ t g tddgttddgksJ t tddgtddgtg ksJ t tddgtddgttddgksJ t tddtddgtdgttddtddgksJ t tdgtddtddgttddtddgks6J t tddtddtddgtddtddtddgttddtd	dtd
dgkseJ d S )NrR   rZ   rQ   rV   rm   r   rw   r   rS   rX   )r   rH   rI   rK   rK   rK   rO   test_dup_subt  s@      &22
$$$,<<r   c                   C   st  t tdtdgtdgdtttdtdgtdgtks!J t tddtddgtdgdtttddtddgtdgtksFJ t g ggg ggdtg ggksWJ t tdgggg ggdttdgggksnJ t g ggtdgggdttdgggksJ t tdgggtdgggdttdgggksJ t tdgggtdgggdttdgggksJ t g ggg ggdtg ggksJ t tddgggg ggdttddgggksJ t g ggtddgggdttddgggksJ t tddgggtddgggdttddgggksJ t tddgggtddgggdttddgggks8J d S )NrR   rQ   r   rV   rZ   rS   )r   rH   r   rI   rK   rK   rK   rO   test_dmp_sub  r   r   c                   C   s   t tdtdtdgtdtdtdgtdtdgttdtdtdtdgks/J ttdtdgtdggtdgtdtdggtdgtdggdttdgtdtdgtdtdggkskJ d S )NrR   rQ   rV   r   rS   rX   rW   )r%   rH   r&   rK   rK   rK   rO   test_dup_add_mul     *2&r   c                   C   s   t tdtdtdgtdtdtdgtdtdgttdtdtdtdgks/J ttdtdgtdggtdgtdtdggtdgtdggdttdgtdtdgtdtdggkskJ d S )	NrR   rQ   rV   r   r   rZ   r   )r'   rH   r(   rK   rK   rK   rO   test_dup_sub_mul  r   r   c                  C   s~  t g g tg ks
J t g tdgtg ksJ t tdgg tg ks$J t tdgtdgttdgks7J t tdgtdgttdgksJJ t g g tg ksTJ t g tddgtg ksbJ t tddgg tg kspJ t tddgtddgttddgksJ t tddgtddgttdd	gksJ tg d
t} tg dt}tg dt}t | |t|ksJ t || t|ksJ tg dt} tg dt}t | | t|ksJ td}t |d|dg|d|dg||d|dgksJ tg dt}tg dt}tg dt}t ||t|ksJ tg dt}tg dt}tg dt}t ||t|ks=J d S )NrR   rX   rS   #   rQ   rW   rV   ri   1   )rV   r   r   rY   rR   rQ   )rW   r   rR   r   )	rx   r   rV      rW   ry   rR   rQ   r   rQ   r   r   rR   rS   	rW   r   r   rW      r   rR   ry   r   rY   )O   rZ   N   r       r   rQ      I   *   U   M   S   r   _   %   r   r   C      L   rQ   F   r   A   9   r   r   a   Y   !   r   Q   r   <   +      ,      r   r   r   rV   5      r   B   rR   r   b   r   rY   rm   r   rx      r      r   7   r   D   r   T   ^   -   r   \   r   r   r   rm   K   r   [   r   "   ry   r   r   r   r   rY   r      r   :   r      r   r   rS   r   r   r   r   r   r   r   rX   3   r   r	  r   r   r   r   R   r   r   r   r   r   r  r   r   r  ?   r   r   rY   r   r   rV   rV   .   r   >   X   r   r  rZ   r   H   ry   r  r  r   r   r   r   r  r   r   r   r   d   r  r   r   r   r  4   V   r   r   r  r   r   r  r   r   r  (\  r   r   rR   Z   r   r   r      r   r   2   r   r      rR   r   r   r   J   P   r   r   r   )   r      r  r   r   E   r   r   r   ry   r   r   r   r   r   r   r   r  r   r  r  r   r   r   r  r   r  r   r   r  r  r   r   r  rX   r$  r   r   r  r  r   r   r   r   0   r   r   r   r   rw   r   r  r   =   r   r  r   r.  r   r   r   rQ   rY   r   r
  r   r6  r   r   r8  rZ   r2  `   r   r   r   8   r  r  r  r<  r&  r  r   r   r   r   r   r   r   r   r.  (   r   r   r   r  r  r   r  '   r  r   ry   W   @   r   r  r   ri   r  r   r   r   r   6   r=  r   rY   r#  r  r8  r   rC  r   r   r   r   r   r   r   r   r2  r   $   r   rX   r&  r  r.  r!  r%  r   ir   r   r   r  rW   r?  rD  r   r   r   r   r   r   r2  r   r   r   r  r  rF  r   r   r4  r   r   r   r/  r  r  r  r)  r   r  r  r   r   r$  r
  r  r#  r   r   r?  r   &   r   rH  r  r   r   rC  r  r  r      r   r   r   r   r"  r   r   rx   rx   r   r*  rF  r5  r  r)  r)  r$  r  r   r  rF  r  r   r   r   r   r   r   r   rR   r   r   rm   rm   r;  r   r   r   r5  r   r   r  r   r   r-  r-  rX   r   r   r  r@  r   rX   r   rD  r   r,  r  rF  r   r   r1  r   r   r*  r   r   r   r  rB  r   r
  r   r  r  r   r   r!  r   r$  r   r   r   rJ  r   r   r  r  r   r   r   rI  r   rx   r  r   r  r   r   r   r  rm   r  r   r   r   (C  i  ii`  ii  i-  iA  iigiiY  ii_  iOi.  iin%  i0$  io  i[  i	J  i5'  i\ii*  ii?i  i*  iizi?  iDz  i`  i|  i  i  ii  i=  is  i  i|  i  ivki}i%  rL  iQi  i`iHii4  iw  i%  i3Uii,  ii  ii  iY  i}i|idi"li޷iiti\ioiiiNb  iiM  i2  iMiiKl  i#iiiiwN  i$iZi  iQ  i9i%}  5ig  ivF  i;if|  ii4ii0  ib  i&Mi^  i'iHi>iiTiߟir0  iuii'  ixiciL  iilg  iiU  i  ip  iXi  i  i0  i5i,  i iCi7  i  ibi/ i_  iYir  i  iM6  iiS  ii|d i  iY ii ii  iPi#i<  iii  i+  ii  i  iiii9i0|iiibiE  itiy  ii:  id  i ii iii  iwi% iW i  iiiiHxii*Fi[iiuUi+iieiy;  izi+  ii<i  i  i/8  iiihihsi  ii, iPi  i#  ibcii3  i*  iI6i&  i6/  iij ioiiѶiI  i?  i)  iii)  iii  iN  ii i߷  i  iϱ  ii<D  i!i1 iiwiix  isw i!  i]  ii}  i[  i  iiyai  io  i1zi'aidaimiVi  iiԔ i iiiIviJ
  i/  i iVK  ixii&i$c  iy`i"i4i  iOij  ii  i}i3  i4i\i i i  iri^ialiH
ii  ii i]  i.  iv  i  i  ii  i!ii  i^N iii
igi!  ivrM  iZ  i'  i  iZiini2 i~  i  iRiorili  iiia  i  iii71  i\ih  i  iiƺ  ii0  ii(ioifi  ii+i i3i" i+G  i8 ii_ iD  i%}ii  imi i9  i=Ri0*  ii2i  iYV  it  ii5  i  i  i.!  i$  ii>{  ii  i1iiK  iO  i'ii{i}i  i_ii	i;  i  iiI  ig  iI  iifiDii  i2  i!陏iE  iiiiii`  is  i* i  iJiiWii.i]  iiܧ  i  i(q  iizi"_  i\ih  i  iiSiiOQii/iii{  iY  iiii4  i"  iw iI  i  i i  i.  iM\iO  ii  (iDie  i  iat  iz  iIio  iF  iO  i$  iS  iƔiOii^iYii*  iiSif  i9  iy  ini&  iii3.  i*iiw i_  iiwii	OiA#  [ioui]+  iv-  iq  i  i\i$  io5  i  i6  ii?  i   iWisiziAi&  iw  io  i7O  iiiyiii^  iC  ie  i'ii9i<i$X  ii  i-  in  iiiiix}  iiK,  i{ii  i i%iWrP  iU  ild  i   i  ii  iQ  iN  iX  i-  i3  i	  ii7iEii8i  iiiirii  i	  i  ii|)r   r1  r   r2  rx   r   r   r   r   r   r@  r*  r   r   r   r   r   rW   r   rY   r   r   r   r   i/   r  r  r!  r   r   r   r(  r.  r2  rA  r   r   r   r%  rZ   r>  r   r   r   r   r   r  r.  r   r   r   r   r0  r  rx   r   r   ir   r  r:  r1  r&  rR   G   rW   rx   r5  rW   r   r$  r   rX   r5  r  r  r   r   r   r  r   r5  r1  r   rR  r   r   r@  r   r
  r   r  r   r   r  rJ  r   r%  r  r  r<  r  r   r>  r;  r  r4  r   r   r  r   r  rJ  r   r   r   r)  r   r   rV   rF  r5  r   r2  r   r   r   r   r   r0  r  r"  ry   r4  r   r  r   r  rB  r"  r   r   r  r   r  r   rx   r   ;   r   c   r   r   r   r  r   r   rR   r  r  r+  r   r$  r   r   r   rA  r  r   r   rw   r   r=  rG  r/  r@  r   r   r  r   r	  r   r   r   r:  rB  rT  r  r   r   r1  r   r   r   r1  rW   r   r   r;  r  r   r   r   r   r   ry   r  r   r   r4  r   r   r   r  r#  r   r<  r   rV   r=  r   r   r  r   r   r   r,  r?  r	  r   r   r  r  r:  r   r   r5  r   r5  r   r   r   (+  r   r  r   r   r   r  r  r   r   r0  r   r<  rI  r   r   r   r   r   r   r  r   r   r&  r   r*  r   r
  rW   rR  r   r   r   rT  r*  r  rU  r
  r0  rA  r   r  r   rA  rT  r   r4  r   r   r?  r  rW   r   r  r   r   r:  r   rV      r<  rE  r   r   r   rY   r   r   r>  r   r  rD  r   rT  r   r   rC  r   rF  r-  r   r&  r   r   r   r   r   r   r   r   rS  r   r  r9  r<  r	  rm   rZ   r<  r   r   r   r   rF  rS  r   r   r   r  rU  r   rG  rX   rC  r   r4  r6  r   r  r  r   r  r"  r@  r   r   rR   r   rK  r   r   r  rV   rx   r  r   r  r3  r   r   r   r   r   r   rX   r   r   ]   r   r   r&  r*  r   rY  rU  r#  r   r  r   r   r   r;  r   r   r   rY  r   r   r   rW  r   r   r  r   r   rH  r-  r   r!  r   r&  r   r   rR  r   r  r   r  r   r#  r  r   r   r   r   rY   r   r   r   ri   r   rY  r   r  r  r  r&  r   r%  rT  rA  r   r   rW  r   r   r3  r7  r8  r'  r   rX   r   rV  r   r   r  r   r   r   r   r   r  rI  r   r  r#  r)  rR   r   r   r  r   r5  r%  r  r   r   rE  rI  r   r;  r   r   r)  r   r&  r   r   r   r  r8  r  rV   r   r   rQ   r6  r   r   r   r  r   r   r   r#  r   rW   r"  r   r%  r   r  rJ  r   r)  rT  r   rU  r  r   rX  r3  r   r   r   rF  rK  r   r   (  i  i$  i4iiiil  iii6  iA  i?,  idiiC  i+R  iii>  i  iis"  iD  i'  i  ii!  ii  ic  i5&  i/     i=I  iiik  i;ii1  i  ii/L  ii  ivi  i$\  iƐiu  i  ii[.i?iir  i  iV  iii8  iwii<  i  iS;  i:iiibi  i\  iViiA  ibI  i/  i^`  iy  i  ikii  ivii)Q  iL  iP  iڃ  iiUi}  i  iяi0ii5  i|-  iD  i(i\  ii  iQ  i  ii  iix`i`M  iHiZ  i  iqb  iG$  il  ii%  i6i3  i<  i  i_N  i  i-  ij  ivimi6  iʀ  i2ik  ios  iv igiXli(i   i  iˎi(i  iPiSi  iŒ  iii{iiU|igiizD  i  i
  iU$ib  iiiMiC ii\Ri i9  iia(  iN  iuiS)i  i  i8H  ir  i%  iid  i0 iii  i	  i5iiA iei  i  i  i0iʷ  i	f  i![i4 ii	  iipq  i]iHix[  ii?Si@YiiM  i  iw=  i,  i ifiJ  i9  i  ii@  ih i  i  i i  i iiiFiwi'  in i"  iG  iJ  iBr  iR!  i  ii<iiiT  i   izsi5 iii{  iiii**  iia  i  i6i wiy it  iM  i+ioiWiDid ihijisii.  iv  iS\i/]iNz  iNm  iH  i@  iJ  i(iۂ  iu  ii]  iz  ii\  i=i&iieiirQ  i%i9iyw  i!  iJ  iiY iH   i-ci_i i
2  ii ii  i\i i^  i: i4  i&  i  i@i  iiiS i.i  iJo  i= iT  i i
  ivi  ip  ibi=  i6  i/  iPi9  iw  i;@iiGq  i  i  iiii)  imGi,  i*  iiiW  ii&  isiaiiu  i  i  i;  i iT  i
iS3 iUi5  i,  i6i.i-ii  iXi~iii  i1i8  ikin  iWdi{rO  i|D i:iǙifIi1  i  isiqiu  i2i  iX  iӉi3iVii  i9ig7  ii-i  i7i  ii i.  i  i`  i  i  i  iR  iii§i{  im i^  iiiiH  iYF  ii1  iiisO  i  ii.iiG  i=  i  i;  iLb  iHip(  iqi  iT  ii)i i}iiˁ  i  iR  i,i^h  iݯi)  i  r#  i^  iuiii  i  iABicC  i>in  iii  iim  iib  iii  ii[n  iitiiѝiI  iiyi5iC  iio~ip  iiiDB  i	i[i"7  i7ii  ii-i  iD  iPrN  iL&  iiu
  io  iii\  ii  i0  i4"  itiwii  iR  iiO  iii	  i{.  i  i
iX  iQ   is+  i\i  iniv/  iti  is  iJi	  i)r   rH   rI   r   rG   )rN   rp   hKp1p2resrK   rK   rO   test_dup_mul  sP   &&,,8=?8:ra  c                  C   s  t tdgtdgdtttdgtdgtksJ t tddgtddgdtttddgtddgtks:J t g ggg ggdtg ggksKJ t tdgggg ggdtg ggks_J t g ggtdgggdtg ggkssJ t tdgggtdgggdttdgggksJ t tdgggtdgggdttdgggksJ t g ggg ggdtg ggksJ t tddgggg ggdtg ggksJ t g ggtddgggdtg ggksJ t tddgggtddgggdttddgggksJ t tddgggtddgggdttddgggksJ td} t | dg| dgg| dg| d	ggd| | dg| d	ggksEJ d S )
NrX   rS   r   rV   rQ   rR   r   rY   rW   )r    rH   r   rI   rG   r]  rK   rK   rO   test_dmp_mul  s,   "((44"**:<(rc  c                  C   s.  t g tg ks	J t tdgttdgksJ t tdtdgttdtdtdgks0J t g tg ks9J t tddgttddgksJJ t tddtddgttddtddtddgksgJ tg dt} t | ttg dtks|J td}t |d|dg||d|d	gksJ d S )
NrQ   rW   rR   rV   r   r   r   rY   rS   )r!   rH   rI   r   rG   )rN   r]  rK   rK   rO   test_dup_sqr  s   0":.rd  c                  C   s   t tdtdgdtttdtdgtksJ t g ggdtg ggks'J t tdgggdttdgggks;J t g ggdtg ggksIJ t tddgggdttddgggks_J td} t | dg| dggd| | dg| dggks}J d S )	NrR   rQ   r   rW   rV   r   rY   rS   )r"   rH   r!   rI   rG   rb  rK   rK   rO   test_dmp_sqr  s   (,8re  c                  C   s  t g dttdgksJ t g dttdgksJ t g dtg ks$J t g dtg ks.J t tdgdttdgks>J t tdgdttdgksNJ t tdgdttdgks^J t tdgdttdgksnJ t tdgdttdgks~J t tdgdttdgksJ t tddgdttddgksJ t tddgdttddgksJ t tddgdttddgksJ t tddgdttddgksJ t tddgdttddgksJ t tddgdttddgksJ tg dt} t | dttdgtksJ t | dttg dtks J t | dttg d	tks0J t | dttg d
tks@J d S )Nr   rR   rS   rV      r   rQ   r   )rm   r   r   rx   r   r   rY   r   i&  rR   r      iW  )r#   rH   rI   r   r[   rK   rK   rO   test_dup_pow  s.         $$$$$$  ri  c                  C   s  t g gddttdggksJ t g gddttdggks J t g gddtg gks-J t g gddtg gks:J t tdggddttdggksMJ t tdggddttdggks`J t tdggddttdggkssJ t tddggddttddggksJ t tddggddttddggksJ t tddggddttddggksJ tg dt} t | ddtt| dtksJ d S )	Nr   rR   rS   rV   rf  rg  r   rQ   )r$   rH   rI   r   r#   r[   rK   rK   rO   test_dmp_pow  s     &&&***"rj  c                     s  t g dt t g dtt ddgt} t ddgt}t t| |fks(J t t| ks2J t t|ks<J tt fdd t g dt t g dtt ddgt} t ddgt}t t| |fksnJ t t| ksxJ t t|ksJ tt fd	d d S )
NrV   rR   rR   rX   rX   r   rR   ri   ry   r   o   c                         t  tS N)r,   rH   rK   ro   rK   rO   r}   
      ztest_dup_pdiv.<locals>.<lambda>c                      rn  ro  )r,   rI   rK   ro   rK   rO   r}     rp  )r   rH   r)   r+   r*   rJ   rE   rI   qrrK   ro   rO   test_dup_pdiv  s    rt  c                     sd  t dgg g dgdt t dgddggdtt dgddggdt} t g dgdt}t dt| |fks8J t dt| ksCJ t dt|ksNJ tt fdd t dgg g dgdt t dgd	dggdtt dgddggdt} t g d
gdt}t dt| |fksJ t dt| ksJ t dt|ksJ tt fdd d S )NrR   rT   rZ   r   rQ   r   r   c                         t  dtS NrR   r0   rH   rK   ro   rK   rO   r}   $      ztest_dmp_pdiv.<locals>.<lambda>rQ   r   )rm   r   r   c                      rv  rw  rx  rK   ro   rK   rO   r}   0  ry  )r   rH   r-   r/   r.   rJ   rE   rq  rK   ro   rO   test_dmp_pdiv  s    rz  c                  C   sP   t tdd  tg dt} tg dt}g | }}t| |t||fks&J d S )Nc                   S      t g dg tS Nrf   )r1   rH   rK   rK   rK   rO   r}   4      z!test_dup_rr_div.<locals>.<lambda>rk  rl  )rJ   r   r   rH   r1   rN   rp   rr  rs  rK   rK   rO   test_dup_rr_div3  s
   
r  c                  C   sF  t tdd  tdgg g dgdt} tdgddggdt}tdgddggdt}tg dgdt}t| |dt||fks?J tdgg g dgdt} tdgddggdt}tdgddggdt}tg dgdt}t| |dt||fkswJ tdgg g dgdt} tdgd	dggdt}g g| }}t| |dt||fksJ d S )
Nc                   S      t ddgdggg gdtS NrR   rQ   rV   )r2   rH   rK   rK   rK   rO   r}   ?      z!test_dmp_rr_div.<locals>.<lambda>rR   rT   rZ   r   ru  rQ   r   )rJ   r   r   rH   r2   r~  rK   rK   rO   test_dmp_rr_div>  s   r  c                  C   sn   t tdd  tg dt} tg dt}tddtddg}td	dtd
dg}t| |t||fks5J d S )Nc                   S   r{  r|  )r3   rI   rK   rK   rK   rO   r}   Z  r}  z!test_dup_ff_div.<locals>.<lambda>rk  rl  rV   rX   ry   r&  r   rm  )rJ   r   r   rI   r3   r~  rK   rK   rO   test_dup_ff_divY  s   r  c                  C   s   t dkrd S ddlm}  ddlm} | }| dd| ddg}| ddg}t||d|| dd| dd	gg fks:J | dd| dd| dd	| dd
g}| dd| dd| ddg}t||d|| dd| ddg| dd| ddgfkswJ d S )Ngmpy2r   )mpq)GMPYRationalFieldrR   rV   rQ   rY   rW   rX   rZ   r   rS   rx   r   r   )r   r  r  sympy.polys.domainsr  r4   )r  r  r]  rN   rp   rK   rK   rO   test_dup_ff_div_gmpy2d  s   *$>r  c                  C   s  t tdd  tdgg g dgdt} tdgddggdt}tddgtddtddgg}tddtddtddgg}t| |dt||fksJJ tdgg g dgdt} tdgddggdt}tddgtddtddgg}tddtddtddgg}t| |dt||fksJ tdgg g dgdt} tdgddggdt}tddgtddtddgg}tddtddtddgg}t| |dt||fksJ d S )	Nc                   S   r  r  )r4   rI   rK   rK   rK   rO   r}   u  r  z!test_dmp_ff_div.<locals>.<lambda>rR   rT   rZ   r   rQ   r   )rJ   r   r   rI   r4   r~  rK   rK   rO   test_dmp_ff_divt  s       r  c                     s   g dg dg dddgf\ } }t  t| |fksJ t t| ks(J t t|ks2J tt fdd g dg d	d
dgg df\ } }t  t| |fksZJ t t| ksdJ t t|ksnJ tt fdd d S )NrX   rW   rV   rQ   rR   rf   rX   r
  r   r  rR   c                      rn  ro  r8   rH   rK   ro   rK   rO   r}     rp  ztest_dup_div.<locals>.<lambda>)rX   rW   rV   rQ   rR   r   )rR   rQ   r   r   r   rX   r
  )ri   rQ   r   rE  c                      rn  ro  r  rK   ro   rK   rO   r}     rp  )r5   rH   r7   r6   rJ   rE   rq  rK   ro   rO   test_dup_div  s   $$r  c                     s
  g dg dg dddgf\ } }t  dt| |fksJ t dt| ks*J t dt|ks5J tt fdd dgggd	ggdggg ggdgggf\ } }t  d	t| |fkscJ t d	t| ksnJ t d	t|ksyJ tt fd
d d S )Nr  rf   r  r  rR   r   c                      rv  )Nr   r<   rH   rK   ro   rK   rO   r}     ry  ztest_dmp_div.<locals>.<lambda>rQ   c                      rv  )NrQ   r  rK   ro   rK   rO   r}     ry  )r9   rH   r;   r:   rJ   rE   rq  rK   ro   rO   test_dmp_div  s   $.r  c                   C   @   t g tdks	J t dgtdksJ t g dtdksJ d S )Nr   rR   rR   rW   rQ   rV   rW   )r=   rH   rK   rK   rK   rO   test_dup_max_norm  s   r  c                   C   J   t g ggdtdksJ t dgggdtdksJ t tdtdks#J d S )NrQ   r   rR   rY   )r>   rH   r`   rK   rK   rK   rO   test_dmp_max_norm     r  c                   C   r  )Nr   rR   r  rw   )r?   rH   rK   rK   rK   rO   test_dup_l1_norm     r  c                   C   r  )NrQ   r   rR   r)  )r@   rH   r`   rK   rK   rK   rO   test_dmp_l1_norm  r  r  c                   C   r  )Nr   rR   r  r   )rA   rH   rK   rK   rK   rO   test_dup_l2_norm_squared  r  r  c                   C   r  )NrQ   r   rR   rm  )rB   rH   r`   rK   rK   rK   rO   test_dmp_l2_norm_squared  s   r  c                   C   sX   t dtdgks
J t g dddgg dfttg dtddgg dttks*J d S )NrK   rR   rf   rQ   )rS   rX   rW   rV   )rC   rH   r   rK   rK   rK   rO   test_dup_expand  s   r  c                	   C   s   t ddtdggksJ t dgdgdggdgdggdgdgdgdggfdttdgdgdggtdgdggdgdgdgdggdtdtksGJ d S )NrK   rR   rQ   rV   rS   rX   rW   )rD   rH   r    rK   rK   rK   rO   test_dmp_expand  s   4$r  N)__doc__sympy.external.gmpyr   sympy.polys.densebasicr   r   sympy.polys.densearithr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   sympy.polys.polyerrorsrE   sympy.polys.specialpolysrF   r  rG   rH   rI   sympy.testing.pytestrJ   r`   f_1f_2f_3f_4f_5f_6ra   r\   rb   rd   re   rh   rj   rq   rs   rt   ru   rv   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra  rc  rd  re  ri  rj  rt  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rK   rK   rK   rO   <module>   s~    
  d 