o
    *ήc(                  	   @   s  d dl 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 edddddhks2J ed	d
dddhks>J edddddhksJJ edd
dddhksVJ dZdZeg dddZeddkskJ eddkstJ e	de\ZZZedksJ dd ed D g d!ksJ d"d ed D g d#ksJ d$d edD g d%ksJ e
eeeeed d&\ZZejd'ksJ ejd(ksJ ed)d*gksJ d+d ed D g d,ksJ d-d ed D g d.ksJ d/d ed D g d0ksJ d1d edD d d gd d2gd3d gd3d4gd5d5ggksJ eeed6eeZejd'ks+J ejd7ks3J eeeZed d g d8ksEJ ed9ed:ksOJ ed;ed  d d  g d<ksaJ ed;ed6 d=ksmJ i Z eeeeeee d>d?\Z!Z"e d@dAdBdCdDksJ dEd edD g dFksJ dGd edD g dHksJ e!d  d2 d d  g dIksJ eg dJg dKg dLg dMg dMgg dMd3gg dMdNggg dOg dJg dPg dLg dMg dMgfksJ dQZ#dRdSg dTfdUdVg dWfdXdYg dZfd[d\g dWfd]d^g d_fgZ$ee$Z%e%g dTg dWg dZg dWg d_gks+J ee%\Z&Z'Z(e&g dZd2gg d_d3ggksCJ e'g d`ksLJ e(g dTg d_g dZg d_g dWgksbJ ee&e'e(d e$e#Z)e)daksrJ dbS )c    )DictTuple)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_factorl   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]L2   )r   i@  l40)	 
   P   l+O/)	    l0)	 i  R   c                 C      g | ]}t | jqS  )factor_baseprime.0ir   r   B/tmp/pip-target-vg8gfxp4/lib/python/sympy/ntheory/tests/test_qs.py
<listcomp>       r      )                        +   ;   =   C   G   I   O   c                 C   r   r   )r   tmem_pr   r   r   r   r      r   )   r0   r!   r   r!      r1      r0               r5   r   c                 C   r   r   )r   log_pr   r   r   r   r      r   )  ie  i  i	  iU  )seedi3J i/j
 i) i6@ c                 C   r   r   )r   soln1r   r   r   r   r   !   r   )r   r   r!   r"      r      r%   	   r(         ?   r&   r%   c                 C   r   r   )r   soln2r   r   r   r   r   #   r   )r   r0   r0   r!      r3   r   r1   r   r0   8   7   r*   :   r3   c                 C   r   r   )r   a_invr   r   r   r   r   %   r   )r0   r0   r   r"   r!   r      r1   (   r      -      r0   r<   c                 C   r   r   )r   b_ainvr   r   r   r   r   '   r   r    r!   r=   r;   r0   i= )i   i#5  i+  i  r8   i%  )r   Fi5 )r   r   r   r   r   r   r   r   r   r0   r   r   r0   r   r0   Ti d  )
ERROR_TERM)i  l{Y*)	 )i  l#))	 )i  lw()	 )i&  l0')	 )i!  iU iy i  c                 C      g | ]}t | d  qS )r   smooth_relationr   r   r   r   r   =       )ilGplhFz$ l hr K lH\c                 C   rN   )r0   rO   r   r   r   r   r   ?   rQ   )lY.)	 l   -\#l   [x l   %2 i1Et)r0   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r0   )r0   r   r0   )r   r0   r   )r   r0   r0   rK   )TTTFF)r0   r   r   i  iu% i}  )r   r   r   r0   iXTi> )r   r0   r   r0   i i 1  )r   r   r   r      iO  i$iK  )r   r0   r   r   )TTFFT   N)*typingr   tDictr   tTuplesympy.ntheoryr   sympy.ntheory.qsr   r   r   r   r	   r
   r   r   r   r   nM
sieve_polyevalidx_1000idx_5000r   rangegBabg_1sieve_arraypartial_relationsrP   partial_relationNsmooth_relationsmatrixdependent_rowmarkgauss_matrixfactorr   r   r   r   <module>   s    0"
$
  "$"
,",