§
    ]²Åj�  ã                  ó~   — 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   ©spÑOÑ9V{Óiè  l   ó8ã,2l   óÿ¯7l   wI±PR3:z2Xi¸  iPÃ  l   RÄFBp l   w+½ù l   ÛgºJª/´
Q9u(l   8(WÐCl   +-šA]Lr   © ó    úLC:\Projects\Historical\venv\Lib\site-packages\sympy/ntheory/tests/test_qs.pyÚ	test_qs_1r      s²   € åˆk˜3 Ñ&Ô&¨6°6Ð*:Ò:Ð:Ð:Ð:ÝÐ)¨4°Ñ7Ô7Ø	˜Ð(ò)ð )ð )ð )åÐ-¨t°UÑ;Ô;Ø	˜/Ð*ò+ð +ð +ð +åÐ+¨T°5Ñ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@  lýÿÿÿ»40)	 é
   é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Ð4 QˆK˜Œ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Ð5 aˆK˜Œ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Ð3 QˆK˜Œ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Ð4 aˆK˜ŒNÔ!Ð4Ð4Ð4r   r)   r*   rI   rG   r:   i= )iè   i#5  i+  i×  rC   i­%  )r   Fi‰5 )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  lýÿÿÿw()	 )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Ð4 aˆO˜AÔ˜qÔ!Ð4Ð4Ð4r   )iÿÿÿlýÿÿÿÜ˜Gplüÿÿÿh¤Fz$ lüÿÿÿ h³r K lýÿÿÿ°H\—c                ó,   •— g | ]}‰|         d          ‘ŒS )r:   r   r^   s     €r   r&   ztest_qs_2.<locals>.<listcomp>N   r`   r   )lýÿÿÿ—Y.)	 l   ¹-\#l   ©[x l   ¹%ñ2 i1¯Et)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ÔD€JØ�?Š?˜2ÑÔ ,Ò.Ð.Ð.Ð.Ø�?Š?˜1ÑÔ Ò-Ð-Ð-Ð-å&;¸DÀ!Ñ&DÔ&DÑ#€Hˆh˜Ø�rŠ>ˆ>ˆ>ˆ>Ø4Ð4Ð4Ð4­%°©)¬)Ð4Ñ4Ô4ØAÐAÐAòBð Bð Bð Bà5Ð5Ð5Ð5­5°©9¬9Ð5Ñ5Ô5Ø<Ð<Ð<ò=ð =ð =ð =à3Ð3Ð3Ð3­%°©(¬(Ð3Ñ3Ô3Ø%Ð%Ð%ò&ð &ð &ð &õ (Ø	ˆ1ˆk˜8 X°Að7ñ 7ô 7�D€A€qàŒ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Ð4­5°©8¬8Ð4Ñ4Ô4Ø
ˆQˆ�!�Q�˜!˜Q˜ ! Q ¨"¨b¨Ð2ò3ð 3ð 3ð 3õ ˜q +¨q°!°QÑ
7Ô
7€CØŒ5�GÒÐÐÐØŒ5�FŠ?ˆ?ˆ?ˆ?å" 1 kÑ2Ô2€KØ�q˜�sÔÐ=Ð=Ð=Ò=Ð=Ð=Ð=å˜T ;Ñ/Ô/°:Ò=Ð=Ð=Ð=Ý˜V [Ñ1Ô1°!Ô4°Q°r°TÔ:Ø5Ð5Ð5ò6ð 6ð 6ð 6å˜V [Ñ1Ô1°!Ô4Ð4Ð4Ð4à46ÐÝ(=Ø	ˆ1ˆk˜;¨
Ð4EØð)ñ )ô )Ñ%€OÐ%ð Ø!Ø#Ø#Ø!ð	!ð !ò ð ð ð ð 5Ð4Ð4Ð4­5°©8¬8Ð4Ñ4Ô4ð 9Pð 9Pð 9Pò Pð Pð Pð Pà4Ð4Ð4Ð4­5°©8¬8Ð4Ñ4Ô4ð 9Jð 9Jð 9Jò Jð Jð Jð Jà˜1Ô˜aÔ   2 Ô&ð +5ð +5ð +5ò 5ð 5ð 5ð 5õ Ø	ˆˆ�I�I�I˜y˜y˜y¨)¨)¨)°Y°Y°YÐ?ñô ð ˆ)ˆ)�Qˆ˜)˜)˜) Q˜Ð(Ø(Ð(Ð(Ø	ˆˆ�I�I�I˜y˜y˜y¨)¨)¨)°Y°Y°YÐ?ð
òð ð ð ð ð 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  iðu% i}  )r   r   r   r:   iXÜTþi€> )r   r:   r   r:   iÐä® i 1  )r   r   r   r   é•   i O  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ØØˆˆØˆˆØˆˆØˆˆØˆˆðò ð ð ð õ )5°VÑ(<Ô(<Ñ%€M�4˜Ø˜l˜l˜l¨AÐ.°°°¸qÐ0AÐ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   