
    oVht                        d dl mZ d dlZd dlmZ d dlmZmZ d dl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
 Zd Zd Zy)    )annotationsN)_randint)qs	qs_factor)SievePolynomial_generate_factor_base_generate_polynomial_gen_sieve_array_check_smoothness_trial_division_stage_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 y )N   M0)	 d   '  iˆ iц l   spO9V{  l   8,2l   7l   wIPR3:z2X  l   RFBp l   w+ l   gJ/
Q9u(iP  l   8(WCl   +-A]Lr        K/home/dcms/DCMS/lib/python3.12/site-packages/sympy/ntheory/tests/test_qs.py	test_qs_1r      s    k3&66*::::)47	() ) )-tU;	/*+ + ++T59	() ) )r   c            
        d} d}t        dd|       }|j                  d      |j                  d      dz  | z
  cxk(  rdk(  sJ  J |j                  d      |j                  d      dz  | z
  cxk(  rdk(  sJ  J t        d	|       \  }}}|d
k(  sJ t	        d      D cg c]  }||   j
                   c}g dk(  sJ t	        d      D cg c]  }||   j                   c}g dk(  sJ t	        d      D cg c]  }||   j                   c}g dk(  sJ t        | ||||t        d            }t        |      }|j                  dk(  sJ |j                  dk(  sJ t	        d      D cg c]  }||   j                   c}g dk(  sJ t	        d      D cg c]  }||   j                   c}g dk(  sJ t	        d      D cg c]  }||   j                   c}ddgddgddgddgddggk(  sJ t        |      }	|	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k(  sJ i }t%        | |||
||d      \  }}|dd d!d"d#k(  sJ t	        d      D cg c]
  }||   d    c}g d$k(  sJ t	        d      D cg c]
  }||   d%    c}g d&k(  sJ |d   d   d'k(  sJ |t'               k(  sJ y c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )(Nr   2   
   P      l+O/)	    l0)	 r   R      )r                        +   ;   =   C   G   I   O   )   r0   r"   r   r"      r1      r0               r5   r!   )  ie  i  i	  iU  r   i3J i/j
 )r   r   r"   r#      r      r&   	   r)         ?   r'   r&   )r   r0   r0   r"      r3   r!   r1   r!   r0   8   7   r+   :   r3   r"   r:   r8   i= )i   i#5  i+  i  r7   i%  )l         r   i5 )i R  r0   i d  )
ERROR_TERM)i  l{Y*)	 l            )i  l#))	 i5  )i  lw()	 l   %              @)i&  l0')	 l             )i!  iU iy i  )ii> is i i  r0   )lY.)	 l   -\#l   [x l   %2 i1Etl
                    )r   eval_veval_ur   rangeprimetmem_plog_pr	   r   nextabsoln1soln2b_ainvr
   r   r   set)nM
sieve_polyidx_1000idx_5000factor_baseiitgg_1sieve_arraypartial_relationssmooth_relationproper_factors                 r   	test_qs_2r^      s   A
A R+JR J$5$5b$91$<q$@PLPPPPPQ:#4#4Q#7#:Q#>N,NNNNN&;D!&D#Hhr>>*/)4QKN  4AB B B+095aKN!!5<= = =*/(3QKN  3%& & & 
	1k8Xx{
<BRA33'>>33&==*/)4QKN  4=> > >*/)4QKN  4>? ? ?+084aKN!!4
Q!Q!Q!Q"b23 3 3 r(C55G55F??"1k2Kq====T;/3IIIIV[1Z???46%:	1k;
4E&"O] :+I=	!    ,184aOAq!4 9- - - -+084aOAq!4 9J J J J1a $PPPPCE!!![ 553 5440 54s0   K%K*8K/+K4K9K>	L/Lc                 F    d} g d}t        t        | |d            dk(  sJ y )Ni  ))iu% i}  r9   )iXTi> r   )i i 1  r   )   iO  r   )i$iK  r         )rI   r   )Nsmooth_relationss     r   	test_qs_3re   P   s.    A Q 0!45;;;r   c                 J    d} t        | dd      D ]  }| |z  dk(  sJ | |z  }  y )Nl   q`T<o r   r   r   r   )rc   factors     r   	test_qs_4rh   \   s8    +AQd# 6zQ	fr   c                     t        ddd      dddk(  sJ d} t        | dd      }t        |      dkD  sJ t        j                  d |j	                         D              | k(  sJ y )Nisr   r   r0   )i  i l   kn.='w!& c              3  ,   K   | ]  \  }}||z    y w)Nr   ).0pes      r   	<genexpr>z!test_qs_factor.<locals>.<genexpr>h   s     6daQT6s   )r   lenmathproditems)rP   factorss     r   test_qs_factorrt   c   sf    ]D%01a4HHHH&A4'Gw<!996gmmo66!;;;r   c                 &    d} t        | dd      J y )Nl   ivT@ i  i N  r   )rc   s    r   test_issue_27616rv   k   s    Aau)))r   )returnNone)
__future__r   rp   sympy.core.randomr   sympy.ntheoryr   r   sympy.ntheory.qsr   r   r	   r
   r   r   r   sympy.testing.pytestr   r   r^   re   rh   rt   rv   r   r   r   <module>r~      sV    "  & 'M M M & ) )6"r	<<*r   