a
    {d                     @  sz   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	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s0J t d
ddddhksHJ t dddddhks`J 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   d/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/ntheory/tests/test_qs.py	test_qs_1   s    


r   None)returnc               	     s^  d} d}t g ddd}|ddks*J |ddks<J td	| \}} |d
ksXJ  fddtdD g dkszJ  fddtdD g dksJ  fddtdD g dksJ t| | ||dd\}}|jdksJ |jdksJ |ddgksJ  fddtdD g dks(J  fddtdD g dksLJ  fddtdD g dkspJ  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sJ t	d' d(ksJ t	d) d dd g d*ks:J t	d) d$ sNJ i }	t
| | |||	d+d,\}
|	d-d.d/d0d1ksJ fd2dtdD g d3ksJ fd4dtdD g d5ksJ d d  dd g d6ksJ 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sZJ d S )>Nr   2   )r   i@  l40)	 
   P   l+O/)	    l0)	 i  R   c                   s   g | ]} | j qS r   )prime.0ifactor_baser   r   
<listcomp>        ztest_qs_2.<locals>.<listcomp>   )                        +   ;   =   C   G   I   O   c                   s   g | ]} | j qS r   )Ztmem_pr   r    r   r   r"   "   r#   )   r4   r&   r   r&      r5      r4               r9   r$   c                   s   g | ]} | j qS r   )Zlog_pr   r    r   r   r"   $   r#   )  ie  i  i	  iU  r   )seedi3J i/j
 i) i6@ c                   s   g | ]} | j qS r   )Zsoln1r   r    r   r   r"   ,   r#   )r   r   r&   r'      r      r*   	   r-         ?   r+   r*   c                   s   g | ]} | j qS r   )Zsoln2r   r    r   r   r"   .   r#   )r   r4   r4   r&      r7   r$   r5   r$   r4   8   7   r/   :   r7   c                   s   g | ]} | j qS r   )Za_invr   r    r   r   r"   0   r#   )r4   r4   r   r'   r&   r      r5   (   r      -      r4   r>   c                   s   g | ]} | j qS r   )Zb_ainvr   r    r   r   r"   2   r#   r%   r&   r?   r=   r4   i= )i   i#5  i+  i  r;   i%  )r   Fi5 )r   r   r   r   r   r   r   r   r   r4   r   r   r4   r   r4   i d  )Z
ERROR_TERM)i  l{Y*)	 )i  l#))	 )i  lw()	 )i&  l0')	 )i!  iU iy i  c                   s   g | ]} | d  qS )r   r   r   smooth_relationr   r   r"   L   r#   )ilGplhFz$ l hr K lH\c                   s   g | ]} | d  qS )r4   r   r   rL   r   r   r"   N   r#   )lY.)	 l   -\#l   [x l   %2 i1Et)r4   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r4   )r4   r   r4   )r   r4   r   )r   r4   r4   rK   )TTTFF)r4   r   r   )r   evalr   ranger   abr   r	   r
   r   r   )nMZ
sieve_polyZidx_1000Zidx_5000gBZg_1Zsieve_arrayZpartial_relationsZpartial_relationr   )r!   rM   r   	test_qs_2   s    



 



$$"  rV   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svJ t|\}}}|g d
dgg ddggksJ |g dksJ |g dg dg d
g dg dgksJ t|||d|| }|dksJ d S )Ni  iu% i}  )r   r   r   r4   iXTi> )r   r4   r   r4   i i 1  )r   r   r   r      iO  i$iK  )r   r4   r   r   r%   r&   )TTFFTr      )r   r   r   )NZsmooth_relationsZmatrixZdependent_rowmarkZgauss_matrixZfactorr   r   r   	test_qs_3\   s:    
 
r[   N)
__future__r   Zsympy.ntheoryr   Zsympy.ntheory.qsr   r   r   r   r	   r
   r   r   r   r   Zsympy.testing.pytestr   r   rV   r[   r   r   r   r   <module>   s   0

F