o
    *ήcR3                     @   sl  d dl mZ d dlmZmZmZmZ d dl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# dd Z$dd Z%d	d
 Z&dd Z'dd Z(dd Z)dd Z*dd Z+dd Z,dd Z-dd Z.dd Z/dd Z0dd  Z1d!d" Z2d#d$ Z3d%d& Z4d'd( Z5d)d* Z6d+d, Z7d-d. Z8d/d0 Z9d1d2 Z:d3d4 Z;d5d6 Z<d7S )8    )var)pquopremsturmsubresultants)Matrix)	sylvesterresres_qres_zbezoutsubresultants_sylvmodified_subresultants_sylvsubresultants_bezoutmodified_subresultants_bezoutbackward_eyesturm_pgsturm_q	sturm_amv	euclid_pgeuclid_q
euclid_amvmodified_subresultants_pgsubresultants_pgsubresultants_amv_qquo_zrem_zsubresultants_amvmodified_subresultants_amvsubresultants_remsubresultants_vvsubresultants_vv_2c               	   C   s  t d} t| d d d| t| d d d| d  kr$tdggks'J  J td| d d | td| d d | d  krGtdggksJJ  J t| d d d| dtdggks]J td| d d | dtdggkspJ t| d d d|  t| d d d| d   krdksJ  J td| d d |  td| d d | d   krdksJ  J t| d d d| d dksJ td| d d | d dksJ tdd|  tdd| d   krtdd| d   krdksJ  J tdd|  tdd| d   kr&tdd| d   kr&dks)J  J t| d | d	 | t| d | d	 | d  kr^t| d | d	 | d  kr^tdd
gddggksaJ  J t| d d|   d d| d  d | t| d d|   d d| d  d | d  krtg dg dg dg dg dgksJ  J t| d d|   d d| d  d | dtg dg dg dg dg dg dgksJ d S )Nx      r         iW  i   i)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   )r   r   r#   r   r)   r   )r   r   r%   r   r)   r$   )r   r   r   r#   r   r)   )r   r   r   detr"    r,   Q/tmp/pip-target-vg8gfxp4/lib/python/sympy/polys/tests/test_subresultants_qq_zz.pytest_sylvester   s    FF&&FF""NTp*$r.   c                  C   sH  t d} | d | d  d| d   d| d   d| d   d|   d }d| d  d| d   d| d   d|   d	 }t||| t||| ksJJ t||| d
 t||| ksZJ t||| t||| kshJ g d}t||| dd t|t||| D ksJ | d d|   d }d| d  d }t||| t||| ksJ d S )Nr"   r'      r#      r&      	      r%   r%   r4   r%   r4   r%   c                 S      g | ]\}}|| qS r,   r,   .0ijr,   r,   r-   
<listcomp>0       z+test_subresultants_sylv.<locals>.<listcomp>r$   )r   r   r   r	   r   zipr   r"   pqamv_factorsr,   r,   r-   test_subresultants_sylv'   s   @0 , rB   c                  C   sT  t d} | d | d  d| d   d| d   d| d   d|   d }d| d  d| d   d| d   d|   d	 }g d
}t||| dd t|t||| D ksVJ t||| d t|| d  || ksjJ t||| t||| ksxJ | d d|   d }d| d  d }t||| t||| ksJ t| || t| || ksJ d S )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;   <   r<   z4test_modified_subresultants_sylv.<locals>.<listcomp>r4   r$   )r   r   r=   r   r
   r   r>   r,   r,   r-    test_modified_subresultants_sylv6   s   @0,($rC   c                  C       t d} tdd| dksJ d S Nr"   r#   r1   r%   )r   r	   r+   r,   r,   r-   test_resE      rF   c                  C   rD   rE   )r   r
   r+   r,   r,   r-   
test_res_qJ   rG   rH   c                  C   sT   t d} tdd| dksJ tdd| tdd|   kr%tdd| ks(J  J d S rE   )r   r   r	   r
   r+   r,   r,   r-   
test_res_zO   s   8rI   c                  C   s   t d} d| d  d| d   d| d   d|   d }d	| d
  d| d   d|   d }t||| d t||| d ksBJ t||| d t||| d ksVJ t||| dtdt||| d td ksnJ d S )Nr"   r1   r$   r#   r2   r&   r%   ir0   r3      bzprs)r   r   r*   r   r   r"   r?   r@   r,   r,   r-   test_bezoutU   s   0$((4rO   c                  C   L  t d} | d | d  d| d   d| d   d| d   d|   d }d| d  d| d   d| d   d|   d	 }t||| t||| ksJJ t||| d
 t|||  ks\J t||| t||| ksjJ g d}t||| dd t|t||| D ksJ | d d|   d }d| d  d }t||| t||| ksJ d S )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r4   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;   g   r<   z-test_subresultants_bezout.<locals>.<listcomp>r$   )r   r   r   r   r*   r   r=   r   r>   r,   r,   r-   test_subresultants_bezout^      @0$, rQ   c                  C   X  t d} | d | d  d| d   d| d   d| d   d|   d }d| d  d| d   d| d   d|   d	 }g d
}t||| dd t|t||| D ksVJ t||| d t|| d  ||  kslJ t||| t||| kszJ | d d|   d }d| d  d }t||| t||| ksJ t| || t| || ksJ d S )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;   s   r<   z6test_modified_subresultants_bezout.<locals>.<listcomp>r4   r$   )r   r   r=   r   r   r*   r   r>   r,   r,   r-   "test_modified_subresultants_bezoutm      @0,,$rT   c                  C   s  t d} | d | d  d| d   d| d   d| d   d|   d }d| d  d| d   d| d   d|   d	 }t||| d
 t||| d ksOJ g d}t||| dd t|t||| D ksiJ d| d  d| d   d }d| d  d| d   }t||| dd
 t||| d ksJ t||| d
 t||| d ksJ t| || d
 t| || d ksJ t| || t| || ksJ d S )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r4   r%   r%   r4   r4   r%   r%   c                 S   r6   r,   r,   r7   r,   r,   r-   r;      r<   z!test_sturm_pg.<locals>.<listcomp>   r%   )r   r   r   r*   r=   r   r   r"   r?   r@   sam_factorsr,   r,   r-   test_sturm_pg|      @0&,(&*$r\   c                  C   sf   t d} | d d|   d }d| d  d }t||| t|ks"J t| | | t| ks1J d S )Nr"   r#   r$   r&   )r   r   r   rN   r,   r,   r-   test_sturm_q   s
   "r^   c                  C   s  t d} | d | d  d| d   d| d   d| d   d|   d }d| d  d| d   d| d   d|   d	 }t||| d
 t||| d ksOJ g d}t||| dd t|t||| D ksiJ d| d  d| d   d }d| d  d| d   }t||| dd
 t||| d ksJ t||| d
 t||| d ksJ t| || d
 t| || d ksJ t| || t| || ksJ d S )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r4   rV   c                 S   r6   r,   r,   r7   r,   r,   r-   r;      r<   z"test_sturm_amv.<locals>.<listcomp>rW   rX   rY   r%   )r   r   r   r*   r=   r   r   r   rZ   r,   r,   r-   test_sturm_amv   r]   r_   c                  C   s  t d} | d | d  | d  | d  | d  |  d }d| d  d| d   d| d   d| d   d|   d }t||| d t|||  ksLJ t||| t||| ksZJ | d	 | d  d| d   d| d   d	| d   d|   d }d| d  d| d   d| d   d
|   d }t||| d t||| d ksJ g d}t||| dd t|t||| D ksJ d S )Nr"   r/   r1   r0   r#   r&   r%   r4   r'   r2   r3   rV   c                 S   r6   r,   r,   r7   r,   r,   r-   r;      r<   z"test_euclid_pg.<locals>.<listcomp>)r   r   r   r*   r   r=   r   rZ   r,   r,   r-   test_euclid_pg   s   0<$@0&0r`   c                  C   sR   t d} | d d|   d }d| d  d }t||| d t|d  ks'J d S )Nr"   r#   r$   r&   r4   )r   r   r   rN   r,   r,   r-   test_euclid_q   s   &ra   c                  C   s:  t d} | d d|   d }d| d  d }t||| d t|||  ks(J t||| t||| ks6J | d | d  d| d   d| d   d| d   d|   d	 }d| d  d	| d   d| d   d
|   d }t||| d t||| d ksJ g d}t||| dd t|t||| D ksJ d S )Nr"   r#   r$   r&   r4   r'   r/   r0   r1   r2   r3   rV   c                 S   r6   r,   r,   r7   r,   r,   r-   r;      r<   z#test_euclid_amv.<locals>.<listcomp>)r   r   r   r*   r   r=   r   rZ   r,   r,   r-   test_euclid_amv   s   $@0&0rb   c                  C   rS   )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;      r<   z2test_modified_subresultants_pg.<locals>.<listcomp>r4   r$   )r   r   r=   r   r   r*   r   r>   r,   r,   r-   test_modified_subresultants_pg   rU   rc   c                  C   rP   )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r4   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;      r<   z)test_subresultants_pg.<locals>.<listcomp>r$   )r   r   r   r   r*   r   r=   r   r>   r,   r,   r-   test_subresultants_pg   rR   rd   c                  C   sL  t d} | d | d  d| d   d| d   d| d   d|   d }d| d  d| d   d| d   d|   d	 }t||| t||| ksJJ t||| d
 t|||  ks\J t||| t||| ksjJ g d}t||| dd t|t||| D ksJ | d d|   d }d| d  d }t||| t||| ksJ d S )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r4   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;      r<   z,test_subresultants_amv_q.<locals>.<listcomp>r$   )	r   r   r   r   r*   r   r=   r   r   r>   r,   r,   r-   test_subresultants_amv_q   rR   re   c                  C   s   t d} | d | d  d| d   d| d   d| d   d|   d }d| d  d| d   d| d   d|   d	 }t|| | t|| | ksLJ d S )
Nr"   r'   r/   r#   r0   r&   r1   r2   r3   )r   r   r   rN   r,   r,   r-   
test_rem_z   s   @0$rf   c                  C   s   t d} | d | d  d| d   d| d   d| d   d|   d }d| d  d| d   d| d   d|   d	 }t|| | t|| | ksLJ t d
}d| d  d|d   d| d   d|   d	 }t|| | t|| | ksxJ d S )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   y)r   r   r   )r"   r?   r@   rg   r,   r,   r-   
test_quo_z  s   @0 0$rh   c                  C   rP   )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r4   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;     r<   z*test_subresultants_amv.<locals>.<listcomp>r$   )r   r   r   r   r*   r   r=   r   r>   r,   r,   r-   test_subresultants_amv  rR   ri   c                  C   rS   )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;   $  r<   z3test_modified_subresultants_amv.<locals>.<listcomp>r4   r$   )r   r   r=   r   r   r*   r   r>   r,   r,   r-   test_modified_subresultants_amv  rU   rj   c                  C   rP   )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r4   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;   7  r<   z*test_subresultants_rem.<locals>.<listcomp>r$   )r   r   r   r   r*   r   r=   r   r>   r,   r,   r-   test_subresultants_rem.  rR   rk   c                  C   rP   )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r4   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;   G  r<   z)test_subresultants_vv.<locals>.<listcomp>r$   )r   r    r   r   r*   r   r=   r   r>   r,   r,   r-   test_subresultants_vv>  rR   rl   c                  C   rP   )Nr"   r'   r/   r#   r0   r&   r1   r2   r3   r4   r5   c                 S   r6   r,   r,   r7   r,   r,   r-   r;   W  r<   z+test_subresultants_vv_2.<locals>.<listcomp>r$   )r   r!   r   r   r*   r   r=   r   r>   r,   r,   r-   test_subresultants_vv_2N  rR   rm   N)=sympy.core.symbolr   sympy.polys.polytoolsr   r   r   r   sympy.matricesr   sympy.polys.subresultants_qq_zzr   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.   rB   rC   rF   rH   rI   rO   rQ   rT   r\   r^   r_   r`   ra   rb   rc   rd   re   rf   rh   ri   rj   rk   rl   rm   r,   r,   r,   r-   <module>   s:    p		