
    g                    ~    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             ZddZ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                     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    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        W/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/ntheory/tests/test_qs.py	test_qs_1r      s    k3&&66*:::::)477	() ) ) )-tU;;	/*+ + + ++T599	() ) ) ) ) )r   returnNonec            	     :   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t          d          D             g dk    sJ fdt          d          D             g dk    sJ fdt          d          D             g dk    sJ t	          | |||d          \  }}|j        dk    sJ |j        dk    sJ |ddgk    sJ fdt          d          D             g dk    sJ fdt          d          D             g dk    sJ fdt          d          D             g dk    sJ fdt          d          D             ddgddgd dgd d!gd"d"ggk    sJ t          | d#||          }|j        dk    sJ |j        d$k    sJ 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#         sJ i }	t          | ||||	d*+          \  }
|	d,d-d.d/d0k    sJ fd1t          d          D             g d2k    sJ fd3t          d          D             g d4k    sJ d         d         dd         g d5k    sJ t          g d6g d7g d8g d9g d9g          g d9d gg d9d:ggg d;g d6g d<g d8g d9g d9gfk    sJ d S )=Nr   2   )r   i@  l40)	 
   P   l+O/)	    l0)	 i  R   c                *    g | ]}|         j         S r   )prime.0ifactor_bases     r   
<listcomp>ztest_qs_2.<locals>.<listcomp>         444QKN 444r      )                        +   ;   =   C   G   I   O   c                *    g | ]}|         j         S r   )tmem_pr"   s     r   r&   ztest_qs_2.<locals>.<listcomp>"   s     555aKN!555r   )   r:   r*   r   r*      r;      r:               r?   r(   c                *    g | ]}|         j         S r   )log_pr"   s     r   r&   ztest_qs_2.<locals>.<listcomp>$   s     333QKN 333r   )  ie  i  i	  iU  r   )seedi3J i/j
 i) i6@ c                *    g | ]}|         j         S r   )soln1r"   s     r   r&   ztest_qs_2.<locals>.<listcomp>,   r'   r   )r   r   r*   r+      r      r.   	   r1         ?   r/   r.   c                *    g | ]}|         j         S r   )soln2r"   s     r   r&   ztest_qs_2.<locals>.<listcomp>.   r'   r   )r   r:   r:   r*      r=   r(   r;   r(   r:   8   7   r3   :   r=   c                *    g | ]}|         j         S r   )a_invr"   s     r   r&   ztest_qs_2.<locals>.<listcomp>0   r'   r   )r:   r:   r   r+   r*   r      r;   (   r      -      r:   rH   c                *    g | ]}|         j         S r   )b_ainvr"   s     r   r&   ztest_qs_2.<locals>.<listcomp>2   s     444aKN!444r   r)   r*   rI   rG   r:   i= )i   i#5  i+  i  rC   i%  )r   Fi5 )r   r   r   r   r   r   r   r   r   r:   r   r   r:   r   r:   i d  )
ERROR_TERM)i  l{Y*)	 )i  l#))	 )i  lw()	 )i&  l0')	 )i!  iU iy i  c                ,    g | ]}|         d          S )r   r   r#   r$   smooth_relations     r   r&   ztest_qs_2.<locals>.<listcomp>L   #    444aOAq!444r   )ilGplhFz$ l hr K lH\c                ,    g | ]}|         d          S )r:   r   r^   s     r   r&   ztest_qs_2.<locals>.<listcomp>N   r`   r   )lY.)	 l   -\#l   [x l   %2 i1Et)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:   rY   )TTTFF)r:   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_   s              @@r   	test_qs_2rq      s*   A
A !;!;!;RDDJ??2,....??1----&;D!&D&D#Hhr>>>>4444%))444AAAB B B B5555599555<<<= = = =3333%((333%%%& & & & (	1k8XA7 7 7DAq3'>>>>3&====     4444%))444===> > > >4444%))444>>>? ? ? ?4444%))444999: : : :4444588444
Q!Q!Q!Q"b23 3 3 3 q+q!Q
7
7C5G5F????"1k22Kqs=======T;//:====V[11!4QrT:5556 6 6 6V[11!444446(=	1k;
4E) ) )%O% !##!	! !     5444588444 9P 9P 9P P P P P4444588444 9J 9J 9J J J J J1a 2& +5 +5 +5 5 5 5 5 	IIIyyy)))YYY?  ))Q)))Q((((	IIIyyy)))YYY?
     r   c                 Z   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    sJ |g dk    sJ |g dg dg d
g dg dgk    sJ t          |||d||           }|dk    sJ d S )Ni  iu% i}  )r   r   r   r:   iXTi> )r   r:   r   r:   i i 1  )r   r   r   r      iO  i$iK  )r   r:   r   r   r)   r*   )TTFFTr      )r   r   r   )Nsmooth_relationsmatrixdependent_rowmarkgauss_matrixfactors          r   	test_qs_3r|   \   sk   A	#|||$	E<<<(	5,,,'	e\\\"	E<<<( +,,F     )5V(<(<%M4lllA.q0ABBBBB3333333     t\1.>C CFR<<<<<<r   N)r   r   )
__future__r   sympy.ntheoryr   sympy.ntheory.qsr   r   r   r	   r
   r   r   r   r   r   sympy.testing.pytestr   r   rq   r|   r   r   r   <module>r      s   " " " " " "                                                      & % % % % % ) ) )C C C CL         r   