o
    jg                     @  sv   d dl 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 d dlmZ edd Zdd	d
Zdd ZdS )    )annotationsqs)
SievePolynomial_generate_factor_base_initialize_first_polynomial_initialize_ith_poly_gen_sieve_array_check_smoothness_trial_division_stage_gauss_mod_2_build_matrix_find_factor)slowc                   C  sd   t dddddhksJ t ddddd	hksJ t d
ddddhks$J t dddddhks0J d S )N   M0)	 d   i'  iˆ iц l   spO9V{i  l   8,2l   7l   wIPR3:z2Xi  iP  l   RFBp l   w+ l   gJ/
Q9u(l   8(WCl   +-A]Lr    r   r   S/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/ntheory/tests/test_qs.py	test_qs_1   s   


r   returnNonec               	     sN  d} d}t g ddd}|ddksJ |ddksJ td	| \}} |d
ks,J  fddtdD g dks=J  fddtdD g dksNJ  fddtdD g dks_J t| | ||dd\}}|jdksrJ |jdksyJ |ddgksJ  fddtdD g dksJ  fddtdD g dksJ  fddtdD g dksJ  fddtdD ddgdd gd!dgd!d"gd#d#ggksJ t|  d$||}|jdksJ |jd%ksJ t| }|dd g d&ksJ t	d' d(ksJ t	d) d dd g d*ksJ t	d) d$ sJ i }	t
| | |||	d+d,\}
|	d-d.d/d0d1ks:J fd2dtdD g d3ksLJ fd4dtdD g d5ks^J d d  dd g d6ksoJ tg d7g d8g d9g d:g d:gg d:d!gg d:d;ggg d<g d7g d=g d9g d:g d:gfksJ d S )>Nr   2   )r   i@  l40)	 
   P   l+O/)	    l0)	 i  R   c                      g | ]} | j qS r   )prime.0ifactor_baser   r   
<listcomp>        ztest_qs_2.<locals>.<listcomp>   )                        +   ;   =   C   G   I   O   c                   r   r   )tmem_pr   r!   r   r   r#   "   r$   )   r6   r'   r   r'      r7      r6               r;   r%   c                   r   r   )log_pr   r!   r   r   r#   $   r$   )  ie  i  i	  iU  r   )seedi3J i/j
 i) i6@ c                   r   r   )soln1r   r!   r   r   r#   ,   r$   )r   r   r'   r(      r      r+   	   r.         ?   r,   r+   c                   r   r   )soln2r   r!   r   r   r#   .   r$   )r   r6   r6   r'      r9   r%   r7   r%   r6   8   7   r0   :   r9   c                   r   r   )a_invr   r!   r   r   r#   0   r$   )r6   r6   r   r(   r'   r      r7   (   r      -      r6   rB   c                   r   r   )b_ainvr   r!   r   r   r#   2   r$   r&   r'   rC   rA   r6   i= )i   i#5  i+  i  r>   i%  )r   Fi5 )r   r   r   r   r   r   r   r   r   r6   r   r   r6   r   r6   i d  )
ERROR_TERM)i  l{Y*)	 )i  l#))	 )i  lw()	 )i&  l0')	 )i!  iU iy i  c                      g | ]} | d  qS )r   r   r   smooth_relationr   r   r#   L       )ilGplhFz$ l hr K lH\c                   rT   )r6   r   r   rU   r   r   r#   N   rW   )lY.)	 l   -\#l   [x l   %2 i1Et)r6   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r6   )r6   r   r6   )r   r6   r   )r   r6   r6   rQ   )TTTFF)r6   r   r   )r   evalr   ranger   abr   r	   r
   r   r   )nM
sieve_polyidx_1000idx_5000gBg_1sieve_arraypartial_relationspartial_relationr   )r"   rV   r   	test_qs_2   s   
 


$$"  rg   c                  C  s   d} ddg dfddg dfdd	g d
fddg dfddg dfg}t |}|g dg dg d
g dg dgks;J t|\}}}|g d
dgg ddggksRJ |g dksZJ |g dg dg d
g dg dgksoJ t|||d|| }|dks~J d S )Ni  iu% i}  )r   r   r   r6   iXTi> )r   r6   r   r6   i i 1  )r   r   r   r      iO  i$iK  )r   r6   r   r   r&   r'   )TTFFTr      )r   r   r   )Nsmooth_relationsmatrixdependent_rowmarkgauss_matrixfactorr   r   r   	test_qs_3\   s:   
 
rq   N)r   r   )
__future__r   sympy.ntheoryr   sympy.ntheory.qsr   r   r   r   r	   r
   r   r   r   r   sympy.testing.pytestr   r   rg   rq   r   r   r   r   <module>   s    0


F