§
    OŠtjÞ  ã                   óH  — d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 d„ Z
d„ Zd„ Z ed	e¦  «        Z e
d	ee¦  «        Z ed
e¦  «        Z e
d
ee¦  «        Zd„ Zd„ Zd„ Zd„ Z ede¦  «        Z ed	ee¦  «        Z ede¦  «        Z ed
ee¦  «        Zd„ Zd„ Zd„ Zd„ ZdS )z/Benchmarks for polynomials over Galois fields. é    )Úgf_from_dictÚgf_factor_sqf)ÚZZ)Úpi)Ú	nextprimec                 óN   — t          | |j        d|j        d|j        i||¦  «        S )Né   r   )r   Úone)ÚnÚpÚKs      úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/polys/benchmarks/bench_galoispolys.pyÚgathen_polyr   
   s'   € Ý˜˜AœE 1 a¤e¨Q°´Ð6¸¸1Ñ=Ô=Ð=ó    c                 ó†   — |j         g| dz   z  }t          d| dz   ¦  «        D ]}||dz
           dz  |j         z   |z  ||<   Œ|S )Nr	   é   )r
   Úrange)r   r   r   ÚfÚis        r   Ú
shoup_polyr      sW   € Ø	
Œˆ�1�q‘5Ñ€AÝ�1�a˜!‘e‰_Œ_ð )ð )ˆØ�!�a‘%”˜!‘˜aœeÑ# qÑ(ˆˆ!‰ˆØ€Hr   c                 ó†   —  |t          t          d| z  t          z                       ¦   «         ¦  «        ¦  «        ¦  «        S )Nr   )r   Úintr   Úevalf)r   r   s     r   Úgenprimer      s6   € Øˆ1�Y•s˜A˜q™D¥2™I×,Ò,Ñ.Ô.Ñ/Ô/Ñ0Ô0Ñ1Ô1Ð1r   é
   é   c                  óJ   — t          t          t          t          d¬¦  «         d S ©NÚ
zassenhaus©Úmethod©r   Úf_10Úp_10r   © r   r   Ú!timeit_gathen_poly_f10_zassenhausr&      ó   € Ý•$��b¨Ð6Ñ6Ô6Ð6Ð6Ð6r   c                  óJ   — t          t          t          t          d¬¦  «         d S ©NÚshoupr    r"   r%   r   r   Útimeit_gathen_poly_f10_shoupr+   #   ó   € Ý•$��b¨Ð1Ñ1Ô1Ð1Ð1Ð1r   c                  óJ   — t          t          t          t          d¬¦  «         d S r   ©r   Úf_20Úp_20r   r%   r   r   Ú!timeit_gathen_poly_f20_zassenhausr1   '   r'   r   c                  óJ   — t          t          t          t          d¬¦  «         d S r)   r.   r%   r   r   Útimeit_gathen_poly_f20_shoupr3   +   r,   r   é   é   c                  óJ   — t          t          t          t          d¬¦  «         d S r   ©r   ÚF_10ÚP_08r   r%   r   r   Ú timeit_shoup_poly_F10_zassenhausr:   5   r'   r   c                  óJ   — t          t          t          t          d¬¦  «         d S r)   r7   r%   r   r   Útimeit_shoup_poly_F10_shoupr<   9   r,   r   c                  óJ   — t          t          t          t          d¬¦  «         d S r   ©r   ÚF_20ÚP_18r   r%   r   r   Ú timeit_shoup_poly_F20_zassenhausrA   =   r'   r   c                  óJ   — t          t          t          t          d¬¦  «         d S r)   r>   r%   r   r   Útimeit_shoup_poly_F20_shouprC   A   r,   r   N)Ú__doc__Úsympy.polys.galoistoolsr   r   Úsympy.polys.domainsr   Úsympy.core.numbersr   Úsympy.ntheory.generater   r   r   r   r$   r#   r0   r/   r&   r+   r1   r3   r9   r8   r@   r?   r:   r<   rA   rC   r%   r   r   ú<module>rI      s�  ðØ 5Ð 5ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø "Ð "Ð "Ð "Ð "Ð "Ø !Ð !Ð !Ð !Ð !Ð !Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ð>ð >ð >ðð ð ð2ð 2ð 2ð €x��BÑÔ€Ø€{�2�t˜RÑ Ô €à€x��BÑÔ€Ø€{�2�t˜RÑ Ô €ð7ð 7ð 7ð2ð 2ð 2ð7ð 7ð 7ð2ð 2ð 2ð €x��2�„€Ø€z�"�d˜BÑÔ€à€x��BÑÔ€Ø€z�"�d˜BÑÔ€ð7ð 7ð 7ð2ð 2ð 2ð7ð 7ð 7ð2ð 2ð 2ð 2ð 2r   