§
    OŠtjto  ã                   ó.  — d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC d dlDmEZE d dlFmGZH d dlImJZJ d dlKmLZL d dlMmNZN d dlOmPZP d„ ZQd	„ ZRd
„ ZSd„ ZTd„ ZUd„ ZVd„ ZWd„ ZXd„ ZYd„ ZZd„ Z[d„ Z\d„ Z]d„ Z^d„ Z_d„ Z`d„ Zad„ Zbd„ Zcd„ Zdd„ Zed„ Zfd„ Zgd„ Zhd „ Zid!„ Zjd"„ Zkd#„ Zld$„ Zmd%„ Znd&„ Zod'„ Zpd(„ Zqd)„ Zrd*S )+é    )CÚgf_crtÚgf_crt1Úgf_crt2Úgf_intÚ	gf_degreeÚgf_stripÚgf_truncÚ	gf_normalÚgf_from_dictÚ
gf_to_dictÚgf_from_int_polyÚgf_to_int_polyÚgf_negÚgf_add_groundÚgf_sub_groundÚgf_mul_groundÚgf_addÚgf_subÚ
gf_add_mulÚ
gf_sub_mulÚgf_mulÚgf_sqrÚgf_divÚgf_remÚgf_quoÚgf_exquoÚ	gf_lshiftÚ	gf_rshiftÚ	gf_expandÚgf_powÚ
gf_pow_modÚgf_gcdexÚgf_gcdÚgf_lcmÚgf_cofactorsÚgf_LCÚgf_TCÚgf_monicÚgf_evalÚgf_multi_evalÚ
gf_composeÚgf_compose_modÚgf_trace_mapÚgf_diffÚgf_irreducibleÚgf_irreducible_pÚgf_irred_p_ben_orÚgf_irred_p_rabinÚgf_sqf_listÚgf_sqf_partÚgf_sqf_pÚ
gf_QmatrixÚ	gf_QbasisÚgf_ddf_zassenhausÚgf_ddf_shoupÚgf_edf_zassenhausÚgf_edf_shoupÚgf_berlekampÚgf_factor_sqfÚ	gf_factorÚgf_valueÚlinear_congruenceÚ_csolve_prime_las_vegasÚcsolve_primeÚ	gf_csolveÚgf_frobenius_mapÚgf_frobenius_monomial_base)ÚExactQuotientFailed)Ú
polyconfig)ÚZZ)Úpi)Ú	nextprime)Úraisesc                  óà   — g d¢} g d¢}d}d}t          | |t          ¦  «        |k    sJ ‚g d¢}g d¢}t          |t          ¦  «        |||fk    sJ ‚t          | ||||t          ¦  «        |k    sJ ‚d S )N)é1   éL   éA   )éc   éa   é_   i�ë iñÃ	 )iÿ#  i½$  iƒ%  )é>   é   é   )r   rH   r   r   )ÚUÚMÚpÚuÚEÚSs         ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/polys/tests/test_galoistools.pyÚtest_gf_crtr]   )   s—   € Øˆˆ€AØˆˆ€Aà€AØ€Aå�!�Q�ÑÔ˜qÒ Ð Ð Ð àÐÐ€AØˆˆ€Aå�1•b‰>Œ>˜a  A˜YÒ&Ð&Ð&Ð&Ý�1�a˜˜A˜q¥"Ñ%Ô%¨Ò*Ð*Ð*Ð*Ð*Ð*ó    c                  ó  — t          dd¦  «        dk    sJ ‚t          dd¦  «        dk    sJ ‚t          dd¦  «        dk    sJ ‚t          dd¦  «        dk    sJ ‚t          dd¦  «        dk    sJ ‚t          dd¦  «        dk    sJ ‚d S )	Nr   é   é   é   é   éþÿÿÿé   éÿÿÿÿ)r   © r^   r\   Útest_gf_intrh   9   sž   € Ý�!�Q‰<Œ<˜1ÒÐÐÐÝ�!�Q‰<Œ<˜1ÒÐÐÐÝ�!�Q‰<Œ<˜1ÒÐÐÐÝ�!�Q‰<Œ<˜2ÒÐÐÐÝ�!�Q‰<Œ<˜2ÒÐÐÐÝ�!�Q‰<Œ<˜1ÒÐÐÐÐÐr^   c                  ó¸   — t          g ¦  «        dk    sJ ‚t          dg¦  «        dk    sJ ‚t          ddg¦  «        dk    sJ ‚t          g d¢¦  «        dk    sJ ‚d S )Nrf   ra   r   )ra   r   r   r   ra   re   )r   rg   r^   r\   Útest_gf_degreerj   B   sr   € Ý�R‰=Œ=˜BÒÐÐÐÝ�a�S‰>Œ>˜QÒÐÐÐÝ�a˜�VÑÔ Ò!Ð!Ð!Ð!Ý�_�_�_Ñ%Ô%¨Ò*Ð*Ð*Ð*Ð*Ð*r^   c                  ó®  — t          g ¦  «        g k    sJ ‚t          dg¦  «        g k    sJ ‚t          g d¢¦  «        g k    sJ ‚t          dg¦  «        dgk    sJ ‚t          ddg¦  «        dgk    sJ ‚t          g d¢¦  «        dgk    sJ ‚t          g d¢¦  «        g d¢k    sJ ‚t          g d¢¦  «        g d¢k    sJ ‚t          g d¢¦  «        g d¢k    sJ ‚d S )Nr   )r   r   r   ra   )r   r   r   ra   ©ra   rb   r   )r   ra   rb   r   )r   r   r   ra   rb   r   )r   rg   r^   r\   Útest_gf_striprm   I   s  € Ý�B‰<Œ<˜2ÒÐÐÐÝ�Q�C‰=Œ=˜BÒÐÐÐÝ�I�I�IÑÔ "Ò$Ð$Ð$Ð$å�Q�C‰=Œ=˜Q˜CÒÐÐÐÝ�Q˜�FÑÔ ˜sÒ"Ð"Ð"Ð"Ý�L�L�LÑ!Ô! a SÒ(Ð(Ð(Ð(å�I�I�IÑÔ ) ) )Ò+Ð+Ð+Ð+Ý�L�L�LÑ!Ô! Y Y YÒ.Ð.Ð.Ð.ÝÐ&Ð&Ð&Ñ'Ô'¨9¨9¨9Ò4Ð4Ð4Ð4Ð4Ð4r^   c                  ó(  — t          g d¦  «        g k    sJ ‚t          dgd¦  «        dgk    sJ ‚t          dgd¦  «        g k    sJ ‚t          dgd¦  «        dgk    sJ ‚t          g d¢d¦  «        g d¢k    sJ ‚t          g d¢d¦  «        g d¢k    sJ ‚d S )	Né   ra   é   rU   ©ro   rp   é   ra   r   ©é   ra   r   )rU   é   rr   ra   r   )ra   ra   rt   ra   r   )r	   rg   r^   r\   Útest_gf_truncrv   W   sÊ   € Ý�B˜ÑÔ˜rÒ!Ð!Ð!Ð!Ý�Q�C˜ÑÔ  Ò#Ð#Ð#Ð#Ý�R�D˜"ÑÔ Ò#Ð#Ð#Ð#Ý�R�D˜"ÑÔ ! Ò$Ð$Ð$Ð$åÐ&Ð&Ð&¨Ñ+Ô+¨y¨y¨yÒ8Ð8Ð8Ð8ÝÐ&Ð&Ð&¨Ñ+Ô+¨¨¨Ò>Ð>Ð>Ð>Ð>Ð>r^   c                  óF   — t          g d¢dt          ¦  «        g d¢k    sJ ‚d S )Nrq   ro   rs   )r
   rH   rg   r^   r\   Útest_gf_normalrx   a   s0   € ÝÐ'Ð'Ð'¨­RÑ0Ô0°I°I°IÒ=Ð=Ð=Ð=Ð=Ð=r^   c                  ó|  — ddddœ} ddddœ}g d¢}t          | dt          ¦  «        |k    sJ ‚t          |d¦  «        |k    sJ ‚d	d
dddœ} d	dddœ}g d¢}t          | dt          ¦  «        |k    sJ ‚t          |d¦  «        |k    sJ ‚t          dgdd¬¦  «        d
dik    sJ ‚t          dgdd¬¦  «        d
dik    sJ ‚d S )NrU   rb   é   )ro   rt   r   ra   rc   )ra   r   r   r   r   rb   r   r   r   r   r   rc   ro   éûÿÿÿr   )ro   re   rc   r   )ro   rc   r   )rt   r   r   r   r   r   r   r   ra   r   r   ra   é
   T©Ú	symmetricrf   F)r   rH   r   )ÚfÚFÚgs      r\   Útest_gf_from_to_dictr‚   e   s  € Ø�A˜"ÐÐ€AØ�1˜ÐÐ€AØ,Ð,Ð,€Aå˜˜2�rÑ"Ô" aÒ'Ð'Ð'Ð'Ý�a˜ÑÔ Ò!Ð!Ð!Ð!à�A˜! Ð#Ð#€AØ�A˜!ÐÐ€AØ,Ð,Ð,€Aå˜˜2�rÑ"Ô" aÒ'Ð'Ð'Ð'Ý�a˜ÑÔ Ò!Ð!Ð!Ð!å�r�d˜B¨$Ð/Ñ/Ô/°A°r°7Ò:Ð:Ð:Ð:Ý�r�d˜B¨%Ð0Ñ0Ô0°Q¸°GÒ;Ð;Ð;Ð;Ð;Ð;r^   c                  óÖ   — t          g d¢d¦  «        g d¢k    sJ ‚t          g d¢d¦  «        g d¢k    sJ ‚t          dgdd¬	¦  «        d
gk    sJ ‚t          dgdd¬	¦  «        dgk    sJ ‚d S )N)ra   r   é   rb   é   r`   )ra   r   rb   rb   r   )ra   r   re   rb   rc   )ra   r   rf   rb   rd   r|   ro   Tr}   rf   F)r   r   rg   r^   r\   Útest_gf_from_to_int_polyr†   x   sœ   € ÝÐ,Ð,Ð,¨aÑ0Ô0°O°O°OÒCÐCÐCÐCÝ˜/˜/˜/¨1Ñ-Ô-Ð1BÐ1BÐ1BÒBÐBÐBÐBå˜2˜$ ¨dÐ3Ñ3Ô3¸°tÒ;Ð;Ð;Ð;Ý˜2˜$ ¨eÐ4Ñ4Ô4¸¸Ò<Ð<Ð<Ð<Ð<Ð<r^   c                  ó®   — t          g t          ¦  «        dk    sJ ‚t          dgt          ¦  «        dk    sJ ‚t          ddgt          ¦  «        dk    sJ ‚d S ©Nr   ra   rb   )r&   rH   rg   r^   r\   Ú
test_gf_LCr‰   €   ó[   € Ý�•R‰=Œ=˜AÒÐÐÐÝ�!�•b‰>Œ>˜QÒÐÐÐÝ�!�Q��ÑÔ Ò!Ð!Ð!Ð!Ð!Ð!r^   c                  ó®   — t          g t          ¦  «        dk    sJ ‚t          dgt          ¦  «        dk    sJ ‚t          ddgt          ¦  «        dk    sJ ‚d S rˆ   )r'   rH   rg   r^   r\   Ú
test_gf_TCrŒ   †   rŠ   r^   c                  óþ  — t          t          j        g ¦  «        dt          ¦  «        dg fk    sJ ‚t          t          j        dg¦  «        dt          ¦  «        ddgfk    sJ ‚t          t          j        dg¦  «        dt          ¦  «        ddgfk    sJ ‚t          t          j        g d¢¦  «        dt          ¦  «        dg d¢fk    sJ ‚t          t          j        g d¢¦  «        dt          ¦  «        dg d¢fk    sJ ‚d S )Nro   r   ra   rb   ©ra   rb   rc   re   )rb   rc   re   r`   )ra   r„   rb   é   )r(   rH   Úmaprg   r^   r\   Útest_gf_monicr‘   Œ   só   € Ý•B”F˜2‘J”J ¥BÑ'Ô'¨A¨r¨7Ò2Ð2Ð2Ð2å•B”F˜A˜3‘K”K ¥RÑ(Ô(¨Q°°¨HÒ4Ð4Ð4Ð4Ý•B”F˜A˜3‘K”K ¥RÑ(Ô(¨Q°°¨HÒ4Ð4Ð4Ð4å•B”F˜<˜<˜<Ñ(Ô(¨"­bÑ1Ô1°a¸¸¸Ð5FÒFÐFÐFÐFÝ•B”F˜<˜<˜<Ñ(Ô(¨"­bÑ1Ô1°a¸¸¸Ð5FÒFÐFÐFÐFÐFÐFr^   c                  ód  — t          g dt          ¦  «        g k    sJ ‚t          dgdt          ¦  «        dgk    sJ ‚t          g d¢dt          ¦  «        g d¢k    sJ ‚t          g ddt          ¦  «        g k    sJ ‚t          g ddt          ¦  «        g k    sJ ‚t          g ddt          ¦  «        dgk    sJ ‚t          g ddt          ¦  «        dgk    sJ ‚t          dgddt          ¦  «        d	gk    sJ ‚t          dgddt          ¦  «        d
gk    sJ ‚t          dgddt          ¦  «        g k    sJ ‚t          dgddt          ¦  «        g k    sJ ‚t          g d¢ddt          ¦  «        g d¢k    sJ ‚t          g d¢ddt          ¦  «        g d¢k    sJ ‚t	          g ddt          ¦  «        g k    sJ ‚t	          g ddt          ¦  «        g k    sJ ‚t	          dgddt          ¦  «        g k    sJ ‚t	          dgddt          ¦  «        dgk    sJ ‚t	          g d¢ddt          ¦  «        g k    sJ ‚t	          g d¢ddt          ¦  «        g d¢k    sJ ‚t	          g d¢ddt          ¦  «        g d¢k    sJ ‚t          g g dt          ¦  «        g k    sJ ‚t          dgg dt          ¦  «        dgk    sJ ‚t          g dgdt          ¦  «        dgk    sJ ‚t          dgdgdt          ¦  «        dgk    sJ ‚t          dgdgdt          ¦  «        dgk    sJ ‚t          ddgdgdt          ¦  «        ddgk    sJ ‚t          dgddgdt          ¦  «        ddgk    sJ ‚t          g d¢g d¢dt          ¦  «        g d¢k    sJ ‚t          g g dt          ¦  «        g k    sJ ‚t          dgg dt          ¦  «        dgk    sJ ‚t          g dgdt          ¦  «        dgk    sJ ‚t          dgdgdt          ¦  «        g k    sJ ‚t          dgdgdt          ¦  «        dgk    sJ ‚t          ddgdgdt          ¦  «        ddgk    sJ ‚t          dgddgdt          ¦  «        ddgk    sJ ‚t          g d¢g d¢dt          ¦  «        g d¢k    sJ ‚t          g d¢ddgg d¢dt          ¦  «        g d¢k    sJ ‚t          g d¢ddgg d¢dt          ¦  «        g d¢k    sJ ‚t          g g dt          ¦  «        g k    sJ ‚t          g dgdt          ¦  «        g k    sJ ‚t          dgg dt          ¦  «        g k    sJ ‚t          dgdgdt          ¦  «        dgk    sJ ‚t          dgdgdt          ¦  «        dgk    sJ ‚t          g d¢g d¢dt          ¦  «        g d¢k    sJ ‚t          g d¢g d¢dt          ¦  «        g d¢k    sJ ‚t          g d¢g d¢dt          ¦  «        g d¢k    sJ ‚t          g dt          ¦  «        g k    sJ ‚t          dgdt          ¦  «        d	gk    sJ ‚t          ddgdt          ¦  «        g d¢k    sJ ‚t          g d¢dt          ¦  «        g d¢k    sJ ‚d S )Nro   ra   r|   ©ra   rb   rc   )r|   é	   r�   r   rc   r�   re   r”   )ra   rb   rt   rl   r„   )r„   rc   r|   rb   )r�   r”   r|   )r”   r   rb   ©rc   rb   ra   )rt   re   rb   )ra   r`   rt   )r�   r   rt   ra   )ra   rb   r|   r�   r”   )r|   r”   rc   rb   rc   r`   )rc   r   r   rt   ra   rb   )re   r   ra   r   ©	ra   r   rc   rb   re   rc   ra   rb   r   )rb   r   r   ra   r„   ©	re   r   r   re   rt   r   ra   rc   r`   )ra   re   re   )r   rH   r   r   r   r   r   r   r   r   r   rg   r^   r\   Útest_gf_arithr˜   –   s“  € Ý�"�b�"ÑÔ Ò#Ð#Ð#Ð#Ý�1�#�r�2ÑÔ 2 $Ò&Ð&Ð&Ð&Ý�)�)�)˜R¥Ñ$Ô$¨
¨
¨
Ò2Ð2Ð2Ð2å˜˜Q ¥BÑ'Ô'¨2Ò-Ð-Ð-Ð-Ý˜˜Q ¥BÑ'Ô'¨2Ò-Ð-Ð-Ð-å˜˜Q ¥BÑ'Ô'¨A¨3Ò.Ð.Ð.Ð.Ý˜˜Q ¥BÑ'Ô'¨A¨3Ò.Ð.Ð.Ð.å˜!˜˜a ¥RÑ(Ô(¨Q¨CÒ/Ð/Ð/Ð/Ý˜!˜˜a ¥RÑ(Ô(¨Q¨CÒ/Ð/Ð/Ð/å˜!˜˜a ¥RÑ(Ô(¨BÒ.Ð.Ð.Ð.Ý˜!˜˜a ¥RÑ(Ô(¨BÒ.Ð.Ð.Ð.å˜˜˜ A r­2Ñ.Ô.°)°)°)Ò;Ð;Ð;Ð;Ý˜˜˜ A r­2Ñ.Ô.°)°)°)Ò;Ð;Ð;Ð;å˜˜Q ¥BÑ'Ô'¨2Ò-Ð-Ð-Ð-Ý˜˜Q ¥BÑ'Ô'¨2Ò-Ð-Ð-Ð-å˜!˜˜a ¥RÑ(Ô(¨BÒ.Ð.Ð.Ð.Ý˜!˜˜a ¥RÑ(Ô(¨Q¨CÒ/Ð/Ð/Ð/å˜˜˜ A r­2Ñ.Ô.°"Ò4Ð4Ð4Ð4Ý˜˜˜ A r­2Ñ.Ô.°)°)°)Ò;Ð;Ð;Ð;Ý˜˜˜ A r­2Ñ.Ô.°*°*°*Ò<Ð<Ð<Ð<å�"�b˜"�bÑ!Ô! RÒ'Ð'Ð'Ð'Ý�1�#�r˜2�rÑ"Ô" q cÒ)Ð)Ð)Ð)Ý�"�q�c˜2�rÑ"Ô" q cÒ)Ð)Ð)Ð)Ý�1�#˜�s˜B¥Ñ#Ô#¨ sÒ*Ð*Ð*Ð*Ý�1�#˜�s˜B¥Ñ#Ô#¨ sÒ*Ð*Ð*Ð*å�1�a�&˜1˜#˜r¥2Ñ&Ô&¨1¨a¨&Ò0Ð0Ð0Ð0Ý�1�#˜˜1�v˜r¥2Ñ&Ô&¨1¨a¨&Ò0Ð0Ð0Ð0å�)�)�)˜Z˜Z˜Z¨­RÑ0Ô0°I°I°IÒ=Ð=Ð=Ð=å�"�b˜"�bÑ!Ô! RÒ'Ð'Ð'Ð'Ý�1�#�r˜2�rÑ"Ô" q cÒ)Ð)Ð)Ð)Ý�"�q�c˜2�rÑ"Ô" r dÒ*Ð*Ð*Ð*Ý�1�#˜�s˜B¥Ñ#Ô# rÒ)Ð)Ð)Ð)Ý�1�#˜�s˜B¥Ñ#Ô#¨ tÒ+Ð+Ð+Ð+å�1�a�&˜1˜#˜r¥2Ñ&Ô&¨1¨a¨&Ò0Ð0Ð0Ð0Ý�1�#˜˜1�v˜r¥2Ñ&Ô&¨2¨r¨(Ò2Ð2Ð2Ð2å�)�)�)˜Z˜Z˜Z¨­RÑ0Ô0°I°I°IÒ=Ð=Ð=Ð=åØˆ	ˆ	�A�q�6˜<˜<˜<¨­Rñ1ô 1Ø4DÐ4DÐ4DòEð Eð Eð EåØˆ	ˆ	�A�q�6˜<˜<˜<¨­Rñ1ô 1Ø4DÐ4DÐ4DòEð Eð Eð Eõ �"�b˜"�bÑ!Ô! RÒ'Ð'Ð'Ð'Ý�"�q�c˜2�rÑ"Ô" bÒ(Ð(Ð(Ð(Ý�1�#�r˜2�rÑ"Ô" bÒ(Ð(Ð(Ð(Ý�1�#˜�s˜B¥Ñ#Ô#¨ sÒ*Ð*Ð*Ð*Ý�1�#˜�s˜B¥Ñ#Ô#¨ sÒ*Ð*Ð*Ð*åÐ$Ð$Ð$ l l l°B½Ñ;Ô;ð @'ð @'ð @'ò 'ð 'ð 'ð 'å�,�,�,Ð 2Ð 2Ð 2°B½Ñ;Ô;ð @'ð @'ð @'ò 'ð 'ð 'ð 'õ �/�/�/ ? ? ?°B½Ñ;Ô;ð @'ð @'ð @'ò 'ð 'ð 'ð 'õ �"�b�"ÑÔ Ò#Ð#Ð#Ð#Ý�1�#�r�2ÑÔ 1 #Ò%Ð%Ð%Ð%Ý�1�a�&˜"�bÑ!Ô! Y Y YÒ.Ð.Ð.Ð.å�/�/�/ 2¥rÑ*Ô*Ð.IÐ.IÐ.IÒIÐIÐIÐIÐIÐIr^   c                  ó¨  ‡‡— t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t          dgg d¢dt          ¦  «        g dgfk    sJ ‚t	          dgg d¢dt          ¦  «        dgk    sJ ‚t          dgg d¢dt          ¦  «        g k    sJ ‚t          j        g d¢¦  «        Št          j        g d¢¦  «        Šg d	¢} d
d
g}t          ‰‰dt          ¦  «        | |fk    sJ ‚t	          ‰‰dt          ¦  «        |k    sJ ‚t          ‰‰dt          ¦  «        | k    sJ ‚t          t          ˆˆfd„¦  «         t          j        g d¢¦  «        Št          j        g d¢¦  «        Šg d¢} g d¢}t          ‰‰dt          ¦  «        | |fk    sJ ‚t	          ‰‰dt          ¦  «        |k    sJ ‚t          ‰‰dt          ¦  «        | k    sJ ‚t          t          ˆˆfd„¦  «         t          t          j        g d¢¦  «        t          j        ddg¦  «        dt          ¦  «        ddgk    sJ ‚d S )Nc                  ó4   — t          g d¢g dt          ¦  «        S ©Nr“   ro   )r   rH   rg   r^   r\   ú<lambda>z"test_gf_division.<locals>.<lambda>å   ó   € ¥f¨Y¨Y¨Y¸¸BÅÑ&CÔ&C€ r^   c                  ó4   — t          g d¢g dt          ¦  «        S r›   )r   rH   rg   r^   r\   rœ   z"test_gf_division.<locals>.<lambda>æ   r�   r^   c                  ó4   — t          g d¢g dt          ¦  «        S r›   ©r   rH   rg   r^   r\   rœ   z"test_gf_division.<locals>.<lambda>ç   r�   r^   c                  ó4   — t          g d¢g dt          ¦  «        S r›   r    rg   r^   r\   rœ   z"test_gf_division.<locals>.<lambda>è   r�   r^   ra   r“   r„   )r`   re   rc   rb   ra   r   )r`   ra   r   rt   rc   c                  ó2   •— t          ‰ ‰dt          ¦  «        S ©Nr„   ©r   rH   ©r   r�   s   €€r\   rœ   z"test_gf_division.<locals>.<lambda>÷   ó   ø€ ­°°A°q½"Ñ(=Ô(=€ r^   )ra   rb   rc   r   )r`   ra   r   rs   c                  ó2   •— t          ‰ ‰dt          ¦  «        S r£   r¤   r¥   s   €€r\   rœ   z"test_gf_division.<locals>.<lambda>  r¦   r^   )ra   rb   ra   ro   )rK   ÚZeroDivisionErrorr   rH   r   r   r�   rF   )ÚqÚrr   r�   s     @@r\   Útest_gf_divisionr«   ä   s†  øø€ Ý
ÕÐCÐCÑDÔDÐDÝ
ÕÐCÐCÑDÔDÐDÝ
ÕÐCÐCÑDÔDÐDÝ
ÕÐCÐCÑDÔDÐDå�1�#�y�y�y !¥RÑ(Ô(¨R°!°¨IÒ5Ð5Ð5Ð5Ý�1�#�y�y�y !¥RÑ(Ô(¨Q¨CÒ/Ð/Ð/Ð/Ý�1�#�y�y�y !¥RÑ(Ô(¨BÒ.Ð.Ð.Ð.å
ŒÐ!Ð!Ð!Ñ"Ô"€AÝ
ŒˆyˆyˆyÑÔ€AØˆˆ€AØ	
ˆAˆ€Aå�!�Q˜�2ÑÔ 1 a &Ò(Ð(Ð(Ð(Ý�!�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#Ý�!�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
ÕÐ =Ð =Ð =Ð =Ð =Ñ>Ô>Ð>å
ŒÐ!Ð!Ð!Ñ"Ô"€AÝ
Œˆ|ˆ|ˆ|ÑÔ€AØˆ	ˆ	€AØˆ	ˆ	€Aå�!�Q˜�2ÑÔ 1 a &Ò(Ð(Ð(Ð(Ý�!�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#Ý�!�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
ÕÐ =Ð =Ð =Ð =Ð =Ñ>Ô>Ð>å•"”&˜˜˜Ñ#Ô#¥R¤V¨Q°¨F¡^¤^°R½Ñ<Ô<ÀÀAÀÒFÐFÐFÐFÐFÐFr^   c                  óø  — g d¢} t          g dt          ¦  «        g k    sJ ‚t          g dt          ¦  «        g g fk    sJ ‚t          | dt          ¦  «        g d¢k    sJ ‚t          | dt          ¦  «        g d¢k    sJ ‚t          | dt          ¦  «        | g fk    sJ ‚t          | dt          ¦  «        g d¢dgfk    sJ ‚t          | d	t          ¦  «        ddgg d
¢fk    sJ ‚t          | dt          ¦  «        g | fk    sJ ‚d S )N)ra   rb   rc   re   r`   r`   ra   )ra   rb   rc   re   r`   r   rb   )ra   rb   rc   re   r`   r   r   r   rŽ   rc   )rc   re   r`   )r   rH   r   ©r   s    r\   Útest_gf_shiftr®     s+  € Øˆˆ€Aå�R˜�BÑÔ 2Ò%Ð%Ð%Ð%Ý�R˜�BÑÔ B¨ 8Ò+Ð+Ð+Ð+å�Q˜�2ÑÔÐ"4Ð"4Ð"4Ò4Ð4Ð4Ð4Ý�Q˜�2ÑÔÐ"7Ð"7Ð"7Ò7Ð7Ð7Ð7å�Q˜�2ÑÔ 1 b 'Ò)Ð)Ð)Ð)Ý�Q˜�2ÑÔ < < <°!°Ð"5Ò5Ð5Ð5Ð5Ý�Q˜�2ÑÔ A q 6¨9¨9¨9Ð"5Ò5Ð5Ð5Ð5Ý�Q˜�2ÑÔ 2 q 'Ò)Ð)Ð)Ð)Ð)Ð)r^   c                  óš   — ddgdfddgdfg} t          | dt          ¦  «        g d¢k    sJ ‚t          d| fdt          ¦  «        g d¢k    sJ ‚d S )Nra   rb   rc   ro   )ra   r�   rc   r`   rt   r�   re   )re   r|   ra   r”   rb   r|   )r   rH   )r€   s    r\   Útest_gf_expandr°     sn   € Øˆaˆ&�!ˆ˜˜1�v˜q�kÐ"€Aå�Q˜�BÑÔÐ#5Ð#5Ð#5Ò5Ð5Ð5Ð5Ý�a˜�V˜R¥Ñ$Ô$Ð(<Ð(<Ð(<Ò<Ð<Ð<Ð<Ð<Ð<r^   c                  óî  — t          g d¢ddt          ¦  «        dgk    sJ ‚t          g d¢ddt          ¦  «        g d¢k    sJ ‚t          g d¢ddt          ¦  «        g d¢k    sJ ‚t          g d¢ddt          ¦  «        g d¢k    sJ ‚t          g d¢d	dt          ¦  «        g d
¢k    sJ ‚t          g d¢ddt          ¦  «        g d¢k    sJ ‚t          t          j        g d¢¦  «        dt          j        g d¢¦  «        dt          ¦  «        dgk    sJ ‚t          t          j        g d¢¦  «        dt          j        g d¢¦  «        dt          ¦  «        ddgk    sJ ‚t          t          j        g d¢¦  «        dt          j        g d¢¦  «        dt          ¦  «        ddgk    sJ ‚t          t          j        g d¢¦  «        dt          j        g d¢¦  «        dt          ¦  «        dd	gk    sJ ‚t          t          j        g d¢¦  «        d	t          j        g d¢¦  «        dt          ¦  «        ddgk    sJ ‚t          t          j        g d¢¦  «        dt          j        g d¢¦  «        dt          ¦  «        ddgk    sJ ‚d S )N)ra   r   r   ra   r�   r   ro   ra   rb   )	ra   r   r   rb   r`   r   ra   r`   r”   r`   )ra   r   r   r`   r„   r   r|   rt   rb   r|   r”   rt   r|   rt   rt   r   r`   rb   r`   r”   r|   r�   )!ra   r   r   r�   r”   r   rt   r�   r|   ra   rb   r`   r|   r„   r„   r”   ra   rb   r   r   rt   rb   r`   rb   r`   r„   r„   r”   r|   r|   r„   r`   r`   é-   )µra   r   r   ra   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   r   r   re   r   r   re   r|   r   r   r   r   r   r   r|   r   r   r|   rc   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rt   r   r   rt   re   r   r   r   r   r   r   r�   r   r   r�   r”   r   r   r   r   r   r   r|   r   r   r|   rc   r   r   r   r   r   r   re   r   r   re   r|   r   r   r   r   r   r   r�   r   r   r�   r”   r   r   r   r   r   r   r”   r   r   r”   rt   r   r   r   r   r   r   rc   r   r   rc   rb   r   r   r   r   r   r   r|   r   r   r|   rc   r   r   r   r   r   r   r|   r   r   r|   rc   r   r   r   r   r   r   rb   r   r   rb   r`   r   r   r   r   r   r   re   r   r   re   r|   )rb   r   r„   rc   r„   re   )r    rH   r!   r�   rg   r^   r\   Útest_gf_poweringr³     s¿  € Ý�/�/�/ 1 b­"Ñ-Ô-°!°Ò4Ð4Ð4Ð4Ý�/�/�/ 1 b­"Ñ-Ô-°°°Ò@Ð@Ð@Ð@Ý�/�/�/ 1 b­"Ñ-Ô-Ð1LÐ1LÐ1LÒLÐLÐLÐLå�/�/�/ 1 b­"Ñ-Ô-ØKÐKÐKòLð Lð Lð Lõ �/�/�/ 1 b­"Ñ-Ô-ð	,ð 	,ð 	,ò,ð ,ð ,ð ,õ �/�/�/ 2 r­2Ñ.Ô.ð	ð 	ð 	ò	ð 	ð 	ð 	õ •b”f˜_˜_˜_Ñ-Ô-¨qµ"´&¸¸¸Ñ2CÔ2CÀRÍÑLÔLÐQRÐPSÒSÐSÐSÐSÝ•b”f˜_˜_˜_Ñ-Ô-¨qµ"´&¸¸¸Ñ2CÔ2CÀRÍÑLÔLÐQRÐTUÐPVÒVÐVÐVÐVÝ•b”f˜_˜_˜_Ñ-Ô-¨qµ"´&¸¸¸Ñ2CÔ2CÀRÍÑLÔLÐQRÐTUÐPVÒVÐVÐVÐVÝ•b”f˜_˜_˜_Ñ-Ô-¨qµ"´&¸¸¸Ñ2CÔ2CÀRÍÑLÔLÐQRÐTUÐPVÒVÐVÐVÐVÝ•b”f˜_˜_˜_Ñ-Ô-¨qµ"´&¸¸¸Ñ2CÔ2CÀRÍÑLÔLÐQRÐTUÐPVÒVÐVÐVÐVÝ•b”f˜_˜_˜_Ñ-Ô-¨rµ2´6¸)¸)¸)Ñ3DÔ3DÀbÍ"ÑMÔMÐRSÐUVÐQWÒWÐWÐWÐWÐWÐWr^   c                  ó�  — t          t          j        g ¦  «        t          j        g ¦  «        dt          ¦  «        dgg g fk    sJ ‚t          t          j        dg¦  «        t          j        g ¦  «        dt          ¦  «        dgg dgfk    sJ ‚t          t          j        g ¦  «        t          j        dg¦  «        dt          ¦  «        g dgdgfk    sJ ‚t          t          j        dg¦  «        t          j        dg¦  «        dt          ¦  «        g dgdgfk    sJ ‚t          t          j        g ¦  «        t          j        ddg¦  «        dt          ¦  «        g dgddgfk    sJ ‚t          t          j        ddg¦  «        t          j        g ¦  «        dt          ¦  «        dgg ddgfk    sJ ‚t          t          j        ddg¦  «        t          j        ddg¦  «        dt          ¦  «        g dgddgfk    sJ ‚t          t          j        g d¢¦  «        t          j        g d	¢¦  «        dt          ¦  «        d
dgdgddgfk    sJ ‚d S )Nro   ra   rb   rt   rc   r   re   ©ra   r�   r„   ©ra   r„   ra   r„   r`   r„   )r"   rH   r�   rg   r^   r\   Útest_gf_gcdexr·   <  s  € Ý•B”F˜2‘J”J¥¤ r¡
¤
¨BµÑ3Ô3¸¸¸RÀ°}ÒDÐDÐDÐDÝ•B”F˜A˜3‘K”K¥¤¨¡¤¨RµÑ4Ô4¸!¸¸bÀ1À#¸ÒFÐFÐFÐFÝ•B”F˜2‘J”J¥¤¨ s¡¤¨RµÑ4Ô4¸¸a¸SÀ1À#¸ÒFÐFÐFÐFÝ•B”F˜A˜3‘K”K¥¤¨¨¡¤¨bµ"Ñ5Ô5¸"¸q¸cÀAÀ3¸ÒGÐGÐGÐGå•B”F˜2‘J”J¥¤¨¨1 v¡¤°µBÑ7Ô7¸BÀÀÀaÈÀVÐ;LÒLÐLÐLÐLÝ•B”F˜A˜q˜6‘N”N¥B¤F¨2¡J¤J°µBÑ7Ô7¸Q¸CÀÀaÈÀVÐ;LÒLÐLÐLÐLå•B”F˜A˜q˜6‘N”N¥B¤F¨A¨q¨6¡N¤N°B½Ñ;Ô;ÀÀQÀCÈ!ÈQÈÐ?PÒPÐPÐPÐPå•B”F˜9˜9˜9Ñ%Ô%¥r¤v¨l¨l¨lÑ';Ô';¸RÅÑDÔDÈ!ÈQÈÐRSÐQTÐWXÐZ[ÐV\ÐH]Ò]Ð]Ð]Ð]Ð]Ð]r^   c                  óL  — t          t          j        g ¦  «        t          j        g ¦  «        dt          ¦  «        g k    sJ ‚t          t          j        dg¦  «        t          j        g ¦  «        dt          ¦  «        dgk    sJ ‚t          t          j        g ¦  «        t          j        dg¦  «        dt          ¦  «        dgk    sJ ‚t          t          j        dg¦  «        t          j        dg¦  «        dt          ¦  «        dgk    sJ ‚t          t          j        g ¦  «        t          j        ddg¦  «        dt          ¦  «        ddgk    sJ ‚t          t          j        ddg¦  «        t          j        g ¦  «        dt          ¦  «        ddgk    sJ ‚t          t          j        ddg¦  «        t          j        ddg¦  «        dt          ¦  «        ddgk    sJ ‚t          t          j        g d¢¦  «        t          j        g d¢¦  «        dt          ¦  «        ddgk    sJ ‚d S )	Nro   rb   ra   r   rc   rµ   r¶   r„   )r#   rH   r�   rg   r^   r\   Útest_gf_gcdr¹   J  sº  € Ý•"”&˜‘*”*�bœf R™jœj¨"­bÑ1Ô1°RÒ7Ð7Ð7Ð7Ý•"”&˜!˜‘+”+�rœv b™zœz¨2­rÑ2Ô2°q°cÒ9Ð9Ð9Ð9Ý•"”&˜‘*”*�bœf a S™kœk¨2­rÑ2Ô2°q°cÒ9Ð9Ð9Ð9Ý•"”&˜!˜‘+”+�rœv q c™{œ{¨BµÑ3Ô3¸°sÒ:Ð:Ð:Ð:å•"”&˜‘*”*�bœf a¨ V™nœn¨bµ"Ñ5Ô5¸!¸Q¸Ò?Ð?Ð?Ð?Ý•"”&˜!˜Q˜‘.”.¥"¤&¨¡*¤*¨bµ"Ñ5Ô5¸!¸Q¸Ò?Ð?Ð?Ð?å•"”&˜!˜Q˜‘.”.¥"¤&¨!¨Q¨¡.¤.°"µbÑ9Ô9¸aÀ¸VÒCÐCÐCÐCÝ•"”&˜˜˜Ñ#Ô#¥R¤V¨L¨L¨LÑ%9Ô%9¸2½rÑBÔBÀqÈ!ÀfÒLÐLÐLÐLÐLÐLr^   c                  ó@  — t          t          j        g ¦  «        t          j        g ¦  «        dt          ¦  «        g k    sJ ‚t          t          j        dg¦  «        t          j        g ¦  «        dt          ¦  «        g k    sJ ‚t          t          j        g ¦  «        t          j        dg¦  «        dt          ¦  «        g k    sJ ‚t          t          j        dg¦  «        t          j        dg¦  «        dt          ¦  «        dgk    sJ ‚t          t          j        g ¦  «        t          j        ddg¦  «        dt          ¦  «        g k    sJ ‚t          t          j        ddg¦  «        t          j        g ¦  «        dt          ¦  «        g k    sJ ‚t          t          j        ddg¦  «        t          j        ddg¦  «        dt          ¦  «        ddgk    sJ ‚t          t          j        g d¢¦  «        t          j        g d¢¦  «        dt          ¦  «        g d¢k    sJ ‚d S )	Nro   rb   ra   r   rc   rµ   r¶   )ra   r�   r�   r�   r„   )r$   rH   r�   rg   r^   r\   Útest_gf_lcmr»   W  s®  € Ý•"”&˜‘*”*�bœf R™jœj¨"­bÑ1Ô1°RÒ7Ð7Ð7Ð7Ý•"”&˜!˜‘+”+�rœv b™zœz¨2­rÑ2Ô2°bÒ8Ð8Ð8Ð8Ý•"”&˜‘*”*�bœf a S™kœk¨2­rÑ2Ô2°bÒ8Ð8Ð8Ð8Ý•"”&˜!˜‘+”+�rœv q c™{œ{¨BµÑ3Ô3¸°sÒ:Ð:Ð:Ð:å•"”&˜‘*”*�bœf a¨ V™nœn¨bµ"Ñ5Ô5¸Ò;Ð;Ð;Ð;Ý•"”&˜!˜Q˜‘.”.¥"¤&¨¡*¤*¨bµ"Ñ5Ô5¸Ò;Ð;Ð;Ð;å•"”&˜!˜Q˜‘.”.¥"¤&¨!¨Q¨¡.¤.°"µbÑ9Ô9¸aÀ¸VÒCÐCÐCÐCÝ•"”&˜˜˜Ñ#Ô#¥R¤V¨L¨L¨LÑ%9Ô%9¸2½rÑBÔBÀoÀoÀoÒUÐUÐUÐUÐUÐUr^   c                  ó”  — t          t          j        g ¦  «        t          j        g ¦  «        dt          ¦  «        g g g fk    sJ ‚t          t          j        dg¦  «        t          j        g ¦  «        dt          ¦  «        dgdgg fk    sJ ‚t          t          j        g ¦  «        t          j        dg¦  «        dt          ¦  «        dgg dgfk    sJ ‚t          t          j        dg¦  «        t          j        dg¦  «        dt          ¦  «        dgdgdgfk    sJ ‚t          t          j        g ¦  «        t          j        ddg¦  «        dt          ¦  «        ddgg dgfk    sJ ‚t          t          j        ddg¦  «        t          j        g ¦  «        dt          ¦  «        ddgdgg fk    sJ ‚t          t          j        ddg¦  «        t          j        ddg¦  «        dt          ¦  «        ddgdgdgfk    sJ ‚t          t          j        g d¢¦  «        t          j        g d¢¦  «        dt          ¦  «        ddgddgg d	¢fk    sJ ‚d S )
Nro   rb   ra   r   rc   rµ   r¶   r„   ©ra   r   ra   )r%   rH   r�   rg   r^   r\   Útest_gf_cofactorsr¾   d  s  € Ý�œ˜r™
œ
¥B¤F¨2¡J¤J°µBÑ7Ô7¸BÀÀB¸<ÒGÐGÐGÐGÝ�œ ˜s™œ¥R¤V¨B¡Z¤Z°µRÑ8Ô8¸a¸SÀ1À#Àr¸NÒJÐJÐJÐJÝ�œ˜r™
œ
¥B¤F¨A¨3¡K¤K°µRÑ8Ô8¸a¸SÀ"ÀqÀc¸NÒJÐJÐJÐJÝ�œ ˜s™œ¥R¤V¨Q¨C¡[¤[°"µbÑ9Ô9¸q¸cÀAÀ3ÈÈ¸_ÒLÐLÐLÐLå�œ˜r™
œ
¥B¤F¨A¨q¨6¡N¤N°B½Ñ;Ô;ÀÀAÀÈÈQÈCÐ?PÒPÐPÐPÐPÝ�œ  1˜v™œ­¬¨r©
¬
°B½Ñ;Ô;ÀÀAÀÈÈÈRÐ?PÒPÐPÐPÐPå�œ  1˜v™œ­¬°°1¨v©¬¸½BÑ?Ô?Ø	
ˆAˆ���a�SðDò ð ð ð å�œ˜y˜y˜yÑ)Ô)­2¬6°,°,°,Ñ+?Ô+?ÀÅRÑHÔHØ
ˆQˆ�!�Q�˜˜˜Ð#ò%ð %ð %ð %ð %ð %r^   c                  ó2  — t          g dt          ¦  «        g k    sJ ‚t          dgdt          ¦  «        g k    sJ ‚t          ddgdt          ¦  «        dgk    sJ ‚t          g d¢dt          ¦  «        ddgk    sJ ‚t          g d¢dt          ¦  «        g k    sJ ‚d S )Nro   r„   rc   ©r„   rc   ra   )ra   r   r   r   r   r   r   r   r   r   r   ra   )r.   rH   rg   r^   r\   Útest_gf_diffrÁ   s  s°   € Ý�2�r�2ÑÔ "Ò$Ð$Ð$Ð$Ý�A�3˜�BÑÔ 2Ò%Ð%Ð%Ð%å�A�q�6˜2�rÑ"Ô" q cÒ)Ð)Ð)Ð)Ý�9�9�9˜b¥"Ñ%Ô%¨!¨Q¨Ò/Ð/Ð/Ð/åÐ7Ð7Ð7¸½RÑ@Ô@ÀBÒFÐFÐFÐFÐFÐFr^   c                  ó¬  — t          g ddt          ¦  «        dk    sJ ‚t          g ddt          ¦  «        dk    sJ ‚t          dgddt          ¦  «        dk    sJ ‚t          dgddt          ¦  «        dk    sJ ‚t          g d¢ddt          ¦  «        dk    sJ ‚t          g d¢ddt          ¦  «        dk    sJ ‚t          g d¢ddt          ¦  «        dk    sJ ‚t          g d	¢ddt          ¦  «        dk    sJ ‚t          g d	¢ddt          ¦  «        d
k    sJ ‚t          g d	¢ddt          ¦  «        dk    sJ ‚t          g d¢g d¢dt          ¦  «        g d¢k    sJ ‚d S )Nre   ro   r   é   r„   r–   r”   r`   r—   rc   r•   )r   ra   rb   rc   )ra   rt   rt   ra   )r)   rH   r*   rg   r^   r\   Útest_gf_evalrÄ   }  s—  € Ý�2�q˜"�bÑ!Ô! QÒ&Ð&Ð&Ð&Ý�2�r˜2�rÑ"Ô" aÒ'Ð'Ð'Ð'Ý�A�3˜˜2�rÑ"Ô" aÒ'Ð'Ð'Ð'Ý�A�3˜˜B¥Ñ#Ô# qÒ(Ð(Ð(Ð(åÐ.Ð.Ð.°°2µrÑ:Ô:¸aÒ?Ð?Ð?Ð?ÝÐ.Ð.Ð.°°2µrÑ:Ô:¸aÒ?Ð?Ð?Ð?ÝÐ.Ð.Ð.°°B½Ñ;Ô;¸qÒ@Ð@Ð@Ð@åÐ.Ð.Ð.°°2µrÑ:Ô:¸aÒ?Ð?Ð?Ð?ÝÐ.Ð.Ð.°°2µrÑ:Ô:¸aÒ?Ð?Ð?Ð?ÝÐ.Ð.Ð.°°B½Ñ;Ô;¸qÒ@Ð@Ð@Ð@å˜˜˜ L L L°"µbÑ9Ô9¸\¸\¸\ÒIÐIÐIÐIÐIÐIr^   c                  óL  — t          g ddgdt          ¦  «        g k    sJ ‚t          g ddgddgdt          ¦  «        g k    sJ ‚t          dgg dt          ¦  «        dgk    sJ ‚t          ddgg dt          ¦  «        g k    sJ ‚t          ddgddgdt          ¦  «        ddgk    sJ ‚t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          ||dt          ¦  «        g d¢k    sJ ‚t          ||| dt          ¦  «        g d¢k    sJ ‚d S )	Nra   r   ro   ©ra   ra   re   r”   ra   ©ra   ra   ra   )ra   r   r   rb   )ra   r   r   r`   r   r   r„   )rc   r”   rt   r|   )r+   rH   r,   r�   ©r   r�   Úhs      r\   Útest_gf_composerÊ   Ž  sI  € Ý�b˜1˜a˜& "¥bÑ)Ô)¨RÒ/Ð/Ð/Ð/Ý˜"˜q !˜f q¨! f¨bµ"Ñ5Ô5¸Ò;Ð;Ð;Ð;å�q�c˜2˜r¥2Ñ&Ô&¨1¨#Ò-Ð-Ð-Ð-Ý�q˜!�f˜b "¥bÑ)Ô)¨RÒ/Ð/Ð/Ð/Ý�q˜!�f˜q !˜f b­"Ñ-Ô-°!°Q°Ò7Ð7Ð7Ð7å
ŒˆˆˆÑÔ€AÝ
ŒˆyˆyˆyÑÔ€AÝ
Œˆ|ˆ|ˆ|ÑÔ€Aå�a˜˜B¥Ñ#Ô#Ð'<Ð'<Ð'<Ò<Ð<Ð<Ð<Ý˜!˜Q  2¥rÑ*Ô*¨m¨m¨mÒ;Ð;Ð;Ð;Ð;Ð;r^   c            	      ó¦  — t          j        g d¢¦  «        } g d¢}t          j        ddg¦  «        }t          |d| dt           ¦  «        }t          |||d| dt           ¦  «        g d¢g d¢fk    sJ ‚t          |||d| dt           ¦  «        g d¢g d¢fk    sJ ‚t          |||d| dt           ¦  «        g d	¢g d
¢fk    sJ ‚t          |||d| dt           ¦  «        g d¢dgfk    sJ ‚t          |||d| dt           ¦  «        g d¢g d¢fk    sJ ‚t          |||d| dt           ¦  «        g d¢g d¢fk    sJ ‚t          |||d| dt           ¦  «        g d¢dgfk    sJ ‚d S )NrÆ   rÇ   ra   r   ro   )r`   rb   r|   rc   )r`   rc   r   re   rb   )r`   r”   r`   rc   )r|   ra   r`   r„   rc   )ra   r|   rt   r   r„   re   )ra   ra   r�   r`   )r`   rc   r   r   r|   )rH   r�   r!   r-   )r   ÚaÚcÚbs       r\   Útest_gf_trace_maprÏ   ž  sç  € Ý
ŒˆˆˆÑÔ€AØˆ	ˆ	€AÝ
Œ��1ˆv‰Œ€AÝ�1�b˜!˜R¥Ñ$Ô$€Aå˜˜1˜a  A r­2Ñ.Ô.Ø	ˆˆ�I�I�IÐòð ð ð å˜˜1˜a  A r­2Ñ.Ô.Ø	ˆˆ˜˜˜Ð%ò&ð &ð &ð &å˜˜1˜a  A r­2Ñ.Ô.Ø	ˆˆ�}�}�}Ð%ò&ð &ð &ð &å˜˜1˜a  A r­2Ñ.Ô.Ø	ˆˆ˜˜Ðòð ð ð å˜˜1˜a  A r­2Ñ.Ô.Ø	ˆˆ�I�I�IÐòð ð ð å˜˜1˜a  A r­2Ñ.Ô.Ø	ˆˆ˜˜˜Ð%ò&ð &ð &ð &å˜˜1˜a  Q¨­BÑ/Ô/Ø	ˆˆ˜˜Ðòð ð ð ð ð r^   c                  óŠ  — t          t          ddt          ¦  «        dt          ¦  «        du sJ ‚t          t          ddt          ¦  «        dt          ¦  «        du sJ ‚t          t          ddt          ¦  «        dt          ¦  «        du sJ ‚t          t          ddt          ¦  «        dt          ¦  «        du sJ ‚t          t          ddt          ¦  «        dt          ¦  «        du sJ ‚t          t          ddt          ¦  «        dt          ¦  «        du sJ ‚t          t          d	dt          ¦  «        dt          ¦  «        du sJ ‚d S )
Nra   ro   Trb   rc   re   r`   rt   r„   )r0   r/   rH   rg   r^   r\   Útest_gf_irreduciblerÑ   ´  s'  € Ý�N¨1¨bµ"Ñ5Ô5°r½2Ñ>Ô>À$ÐFÐFÐFÐFÝ�N¨1¨bµ"Ñ5Ô5°r½2Ñ>Ô>À$ÐFÐFÐFÐFÝ�N¨1¨bµ"Ñ5Ô5°r½2Ñ>Ô>À$ÐFÐFÐFÐFÝ�N¨1¨bµ"Ñ5Ô5°r½2Ñ>Ô>À$ÐFÐFÐFÐFÝ�N¨1¨bµ"Ñ5Ô5°r½2Ñ>Ô>À$ÐFÐFÐFÐFÝ�N¨1¨bµ"Ñ5Ô5°r½2Ñ>Ô>À$ÐFÐFÐFÐFÝ�N¨1¨bµ"Ñ5Ô5°r½2Ñ>Ô>À$ÐFÐFÐFÐFÐFÐFr^   c                  óÞ  — t          t          j        dg¦  «        dt          ¦  «        du sJ ‚t          t          j        ddg¦  «        dt          ¦  «        du sJ ‚t          t          j        g d¢¦  «        dt          ¦  «        du sJ ‚t          t          j        dg¦  «        dt          ¦  «        du sJ ‚t          t          j        ddg¦  «        dt          ¦  «        du sJ ‚t          t          j        g d¢¦  «        dt          ¦  «        du sJ ‚t	          j        dd¦  «         t          t          j        dg¦  «        dt          ¦  «        du sJ ‚t          t          j        ddg¦  «        dt          ¦  «        du sJ ‚t          t          j        g d¢¦  «        dt          ¦  «        du sJ ‚t	          j        dd	¦  «         t          t          j        dg¦  «        dt          ¦  «        du sJ ‚t          t          j        ddg¦  «        dt          ¦  «        du sJ ‚t          t          j        g d¢¦  «        dt          ¦  «        du sJ ‚t	          j        dd
¦  «         t          t          d„ ¦  «         t	          j        d¦  «         t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          | |dt          ¦  «        }t          | dt          ¦  «        du sJ ‚t          |dt          ¦  «        du sJ ‚t          |dt          ¦  «        du sJ ‚t          | dt          ¦  «        du sJ ‚t          |dt          ¦  «        du sJ ‚t          |dt          ¦  «        du sJ ‚d S )Nr„   ro   Trc   rÀ   FÚGF_IRRED_METHODzben-orÚrabinÚotherc                  ó0   — t          dgdt          ¦  «        S )Nr„   ro   )r0   rH   rg   r^   r\   rœ   z'test_gf_irreducible_p.<locals>.<lambda>Ô  s   € Õ-¨q¨c°2µrÑ:Ô:€ r^   )ra   r”   r”   é   é   é   rt   r„   r„   r„   r|   )ra   r„   rØ   r„   rÙ   r×   r×   ro   rØ   r|   r”   rr   )
r1   rH   r�   r2   ÚconfigÚsetupr0   rK   ÚKeyErrorr   rÈ   s      r\   Útest_gf_irreducible_prÝ   ¾  s?  € Ý�RœV Q C™[œ[¨"­bÑ1Ô1°TÐ9Ð9Ð9Ð9Ý�RœV Q¨ F™^œ^¨RµÑ4Ô4¸Ð<Ð<Ð<Ð<Ý�RœV I I IÑ.Ô.°µBÑ7Ô7¸5Ð@Ð@Ð@Ð@å�BœF A 3™KœK¨­RÑ0Ô0°DÐ8Ð8Ð8Ð8Ý�BœF A q 6™NœN¨BµÑ3Ô3°tÐ;Ð;Ð;Ð;Ý�BœF 9 9 9Ñ-Ô-¨rµ2Ñ6Ô6¸%Ð?Ð?Ð?Ð?å
„LÐ" HÑ-Ô-Ð-å�BœF A 3™KœK¨­RÑ0Ô0°DÐ8Ð8Ð8Ð8Ý�BœF A q 6™NœN¨BµÑ3Ô3°tÐ;Ð;Ð;Ð;Ý�BœF 9 9 9Ñ-Ô-¨rµ2Ñ6Ô6¸%Ð?Ð?Ð?Ð?å
„LÐ" GÑ,Ô,Ð,å�BœF A 3™KœK¨­RÑ0Ô0°DÐ8Ð8Ð8Ð8Ý�BœF A q 6™NœN¨BµÑ3Ô3°tÐ;Ð;Ð;Ð;Ý�BœF 9 9 9Ñ-Ô-¨rµ2Ñ6Ô6¸%Ð?Ð?Ð?Ð?å
„LÐ" GÑ,Ô,Ð,Ý
�8Ð:Ð:Ñ;Ô;Ð;Ý
„LÐ"Ñ#Ô#Ð#å
ŒÐ4Ð4Ð4Ñ5Ô5€AÝ
ŒÐ7Ð7Ð7Ñ8Ô8€Aåˆq�!�R�ÑÔ€Aå˜Q ¥BÑ'Ô'¨4Ð/Ð/Ð/Ð/Ý˜Q ¥BÑ'Ô'¨4Ð/Ð/Ð/Ð/å˜Q ¥BÑ'Ô'¨5Ð0Ð0Ð0Ð0å˜A˜r¥2Ñ&Ô&¨$Ð.Ð.Ð.Ð.Ý˜A˜r¥2Ñ&Ô&¨$Ð.Ð.Ð.Ð.å˜A˜r¥2Ñ&Ô&¨%Ð/Ð/Ð/Ð/Ð/Ð/r^   c                  óB  — t          g dt          ¦  «        dg fk    sJ ‚t          dgdt          ¦  «        dg fk    sJ ‚t          ddgdt          ¦  «        dddgdfgfk    sJ ‚t          g dt          ¦  «        du sJ ‚t          dgdt          ¦  «        du sJ ‚t          ddgdt          ¦  «        du sJ ‚t          dddœdt          ¦  «        } t          | dt          ¦  «        du sJ ‚t          | dt          ¦  «        dddgdfgfk    sJ ‚g d¢} t          | dt          ¦  «        du sJ ‚t          | dt          ¦  «        dddgdfddgdfgfk    sJ ‚t	          | dt          ¦  «        g d	¢k    sJ ‚g d
¢} t          | dt          ¦  «        dddgdfddgdfddgdfgfk    sJ ‚d S )Nro   r   ra   T)ro   r   F©ra   r`   r�   re   rb   )ra   rc   rb   )ra   r   r   rb   r   r   rb   r   r   ra   r   rc   rt   )r3   rH   r5   r   r4   r­   s    r\   Útest_gf_squarefreerà   ç  s1  € Ý�r˜2�rÑ"Ô" q¨" gÒ-Ð-Ð-Ð-Ý˜�s˜B¥Ñ#Ô#¨¨2 wÒ.Ð.Ð.Ð.Ý˜˜1�v˜r¥2Ñ&Ô&¨1°°A°¸¨{¨mÐ*<Ò<Ð<Ð<Ð<å�B˜�BÑÔ 4Ð'Ð'Ð'Ð'Ý�Q�C˜�RÑ Ô  DÐ(Ð(Ð(Ð(Ý�Q˜�F˜B¥Ñ#Ô# tÐ+Ð+Ð+Ð+å˜! �]�] B­Ñ+Ô+€Aå�A�r�2ÑÔ %Ð'Ð'Ð'Ð'å�q˜"�bÑ!Ô!Ø	
ˆq�!ˆf�bˆ\ˆNÐòð ð ð ð 	ˆˆ€Aå�A�r�2ÑÔ %Ð'Ð'Ð'Ð'å�q˜"�bÑ!Ô!Ø	
ˆq�!ˆf�aˆ[Ø�!ˆf�aˆ[ðð 	òð ð ð õ �q˜"�bÑ!Ô! Y Y YÒ.Ð.Ð.Ð.à)Ð)Ð)€Aå�q˜!�RÑ Ô Ø	
ˆq�!ˆf�aˆ[Ø�!ˆf�aˆ[Ø�!ˆf�aˆ[ðð 	òð ð ð ð ð r^   c                  óþ   — t          j        g d¢¦  «        } t          j        g d¢¦  «        }d}t          ||t           ¦  «        }t          | |||t           ¦  «        }t	          | |||t           ¦  «        }||k    sJ ‚d S )N)
rb   r   ra   r   rb   rb   r   rb   rb   rb   )
ra   ra   r   rb   r   ra   r   rb   r   ra   rc   )rH   r�   rE   rD   r!   )r   r�   rX   rÎ   rÉ   Úh1s         r\   Útest_gf_frobenius_maprã     s   € Ý
ŒÐ-Ð-Ð-Ñ.Ô.€AÝ
ŒÐ$Ð$Ð$Ñ%Ô%€AØ	€AÝ" 1 a­Ñ,Ô,€AÝ˜˜A˜q !¥RÑ(Ô(€AÝ	�A�q˜!˜Q¥Ñ	#Ô	#€BØ�Š7ˆ7ˆ7ˆ7ˆ7ˆ7r^   c                  óv  — t          g d¢d¦  «        } g d¢g d¢g d¢g d¢g d¢g d¢g}g d¢g d	¢g d
¢g}t          | dt          ¦  «        |k    sJ ‚t          |dt          ¦  «        |k    sJ ‚t	          | dt          ¦  «        ddgg d¢g d¢gk    sJ ‚t          j        g d¢¦  «        } t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        }g d¢g d¢g d¢g}t          | dt          ¦  «        |k    sJ ‚t          |dt          ¦  «        |k    sJ ‚t	          | dt          ¦  «        ddgg d¢g d¢gk    sJ ‚d S )N©ra   éýÿÿÿra   ræ   rf   ræ   ra   ro   )ra   r   r   r   r   r   )rc   r`   r�   r�   rt   r`   )rc   rt   rt   ra   r|   r   )r”   re   r|   rc   r„   r”   )r„   r�   r|   r   r   r�   )r�   r|   r„   r�   r|   r�   )r   ra   ra   ra   ra   r   )r   r   r„   r”   r   ra   ra   ©ra   r`   rc   rŽ   )	ra   r   ra   r   r|   r|   r�   rb   r�   )ra   r   r   r   r   r   r   r   )rb   ra   r„   ro   r|   rU   r`   ro   )rc   rt   re   rc   r   re   r„   rb   )re   rc   rt   r`   ra   rt   rb   rc   )rb   ro   r�   r�   rc   ra   rc   ro   )rt   ro   r�   rt   rb   r„   r|   r”   )r`   ro   r„   r|   r   ro   r„   rU   )rc   rc   rU   r`   r   ro   r”   rU   )r   r`   r`   r   r”   r`   ra   r   )r   r”   ro   r”   r|   rU   r   ra   r×   rc   )ra   r�   re   rU   )ra   rb   rc   re   rt   )r   r6   rH   r7   r<   r�   )r   ÚQÚVs      r\   Útest_gf_berlekamprê     s  € ÝÐ2Ð2Ð2°BÑ7Ô7€Aà	Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	ð	€Að 
Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	ð	€Aõ �a˜�RÑ Ô  AÒ%Ð%Ð%Ð%Ý�Q˜�BÑÔ 1Ò$Ð$Ð$Ð$å˜˜2�rÑ"Ô"Ø
ˆQˆ���˜L˜L˜LÐ)ò*ð *ð *ð *õ 	ŒÐ,Ð,Ð,Ñ-Ô-€Aå
ŒÐ(Ð(Ð(Ø	%Ð	%Ð	%Ø	!Ð	!Ð	!Ø	!Ð	!Ð	!Ø	#Ð	#Ð	#Ø	#Ð	#Ð	#Ø	%Ð	%Ð	%Ø	$Ð	$Ð	$ð&ñ 	'ô 	'€Að 
"Ð	!Ð	!Ø	!Ð	!Ð	!Ø	$Ð	$Ð	$ð	&€Aõ �a˜�RÑ Ô  AÒ%Ð%Ð%Ð%Ý�Q˜�BÑÔ 1Ò$Ð$Ð$Ð$å˜˜2�rÑ"Ô"Ø
ˆQˆ���   Ð0ò1ð 1ð 1ð 1ð 1ð 1r^   c            	      ó8  — t          t          d¦  «        t          d¦  «        dœdt          ¦  «        } g d¢dfg d¢dfg}t          | dt          ¦  «        |k    sJ ‚t          | dt          ¦  «        |k    sJ ‚t          t          d¦  «        t          d¦  «        dœdt          ¦  «        } ddgdfg d	¢dfg d
¢dfg d¢dfg}t          | dt          ¦  «        |k    sJ ‚t          | dt          ¦  «        |k    sJ ‚t          t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d¦  «        dœdt          ¦  «        } g d¢dfg d¢dfg}t          | dt          ¦  «        |k    sJ ‚t          | dt          ¦  «        |k    sJ ‚t          j        g d¢¦  «        } ddgdfg d¢dfg}t          | dt          ¦  «        |k    sJ ‚t          | dt          ¦  «        |k    sJ ‚t          t          t          dt          z                       ¦   «         ¦  «        ¦  «        ¦  «        }t          ddddœ|t          ¦  «        } g d¢dfg d¢dfg d¢dfg}t          | |t          ¦  «        |k    sJ ‚t          | |t          ¦  «        |k    sJ ‚d S )Nra   rf   )rÙ   r   ro   )ra   r   r   r   r   r|   )ra   r   r   r   r   ra   r   r   r   r   ra   rb   ©é?   r   rÇ   )ra   ra   ra   ra   ra   ra   ra   rc   )7ra   ra   r   ra   ra   r   ra   r   ra   ra   r   ra   ra   r   r   r   r   r   r   r   r   ra   ra   r   ra   ra   r   ra   r   ra   ra   r   ra   ra   r   r   r   r   r   r   r   r   ra   ra   r   ra   ra   r   ra   r   ra   ra   r   ra   ra   rt   )rt   r`   re   rc   ra   )ra   ra   r   ©ra   ra   r   ra   rb   )ra   rb   r`   é   i¥  i´  i  iE  iÈ  rT   iA  i½  )
ra   én   i/  i  i¶  é—   rð   éF   iß  éz   r”   i)  é €  ©rÙ   ra   r   ©ra   iÊX  i0
 )	ra   ilý  i	H i#*  i1  i  iªÍ  iÁW i„I re   ©ra   ió;  i.s iYJ i,q i¯h r`   )	r   rH   r8   r9   r�   rJ   ÚintrI   Úevalf)r   r�   rX   s      r\   Útest_gf_ddfrú   <  sï  € Ý�"˜Q™%œ%¥B r¡F¤FÐ+Ð+¨RµÑ4Ô4€AØ
Ð
Ð
˜qÐ	!Ø
+Ð
+Ð
+¨QÐ	/ð	1€Aõ ˜Q ¥BÑ'Ô'¨1Ò,Ð,Ð,Ð,Ý˜˜2�rÑ"Ô" aÒ'Ð'Ð'Ð'å�"˜Q™%œ%¥B q¡E¤EÐ*Ð*¨A­rÑ2Ô2€AØˆaˆ&�!ˆØ
ˆ)ˆ)�QˆØ
Ð
Ð
 Ð	#ð>ð >ð >à?@ð
Bð	C€Aõ ˜Q ¥2Ñ&Ô&¨!Ò+Ð+Ð+Ð+Ý˜˜1�bÑ!Ô! QÒ&Ð&Ð&Ð&å�˜A™œ¥2 b¡6¤6­b°©e¬e½¸1¹¼Å"ÀRÁ&Ä&ÐIÐIÈ1ÍbÑQÔQ€AØ
ˆ)ˆ)�QˆØ
ˆ/ˆ/˜1Ð	ð	€Aõ ˜Q ¥2Ñ&Ô&¨!Ò+Ð+Ð+Ð+Ý˜˜1�bÑ!Ô! QÒ&Ð&Ð&Ð&å
ŒÐ>Ð>Ð>Ñ?Ô?€AØˆcˆ(�AˆØ
9Ð
9Ð
9¸1Ð	=ð	?€Aõ ˜Q ¥RÑ(Ô(¨AÒ-Ð-Ð-Ð-Ý˜˜3¥Ñ#Ô# qÒ(Ð(Ð(Ð(å
�9•S˜%¥"™*×+Ò+Ñ-Ô-Ñ.Ô.Ñ/Ô/Ñ0Ô0€AÝ˜!  aÐ(Ð(¨!­RÑ0Ô0€AØ
Ð
Ð
˜QÐ	Ø
EÐ
EÐ
EÀqÐ	IØ
0Ð
0Ð
0°!Ð	4ð	6€Aõ ˜Q ¥2Ñ&Ô&¨!Ò+Ð+Ð+Ð+Ý˜˜1�bÑ!Ô! QÒ&Ð&Ð&Ð&Ð&Ð&r^   c                  óÚ   — t          j        g d¢¦  «        } t          j        g d¢g d¢g¦  «        }t          | ddt           ¦  «        |k    sJ ‚t          | ddt           ¦  «        |k    sJ ‚d S )Nrî   r½   )ra   ra   rb   rb   rc   )rH   r�   r:   r;   r¥   s     r\   Útest_gf_edfrü   g  su   € Ý
ŒˆˆˆÑÔ€AÝ
Œ�	�	�	˜9˜9˜9Ð%Ñ&Ô&€Aå˜Q  1¥bÑ)Ô)¨QÒ.Ð.Ð.Ð.Ý˜˜1˜a¥Ñ$Ô$¨Ò)Ð)Ð)Ð)Ð)Ð)r^   c                  ó    — t          j        g d¢¦  «        } t          j        g d¢g d¢g¦  «        }t          | ddt           ¦  «        |k    sJ ‚d S )N)ra   ra   ra   ra   ra   ra   ra   ra   ra   ra   ra   ra   ra   ra   ra   ra   ra   )	ra   r   r   ra   ra   ra   r   r   ra   )	ra   ra   ra   r   ra   r   ra   ra   ra   r�   rb   )rH   r�   r:   r¥   s     r\   Útest_issue_23174rþ   o  s_   € Ý
ŒÐBÐBÐBÑCÔC€AÝ
ŒÐ+Ð+Ð+Ð-HÐ-HÐ-HÐIÑJÔJ€Aå˜Q  1¥bÑ)Ô)¨QÒ.Ð.Ð.Ð.Ð.Ð.r^   c                  óð  — t          g dt          ¦  «        dg fk    sJ ‚t          dgdt          ¦  «        dg fk    sJ ‚t          ddgdt          ¦  «        dddgdfgfk    sJ ‚t          g dt          ¦  «        dg fk    sJ ‚t          dgdt          ¦  «        dg fk    sJ ‚t          ddgdt          ¦  «        dddggfk    sJ ‚t          j        dd¦  «         t          g dt          ¦  «        dg fk    sJ ‚t          dgdt          ¦  «        dg fk    sJ ‚t          ddgdt          ¦  «        dddggfk    sJ ‚t          j        dd¦  «         t          g dt          ¦  «        dg fk    sJ ‚t          dgdt          ¦  «        dg fk    sJ ‚t          ddgdt          ¦  «        dddggfk    sJ ‚t          j        dd¦  «         t          t          j        g ¦  «        dt          ¦  «        dg fk    sJ ‚t          t          j        dg¦  «        dt          ¦  «        dg fk    sJ ‚t          t          j        ddg¦  «        dt          ¦  «        dddggfk    sJ ‚t          j        g d¢¦  «        d	}} dddgdfddgdfg d
¢dfgf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚dddgddgg d
¢gf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          g d¢d¦  «        d}} dddgdfg d¢dfg d¢dfgf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚g d¢d}} dddgdfdd	gd	fgf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚g d¢d}} dddgd	fg d¢dfg d¢dfgf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          dddœdt          ¦  «        d}} dg d¢dfg d¢dfgf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          t          d¦  «        t          d¦  «        dœdt          ¦  «        d}} dddgdfddgdfg d¢dfg d¢dfg d¢dfg d¢dfg d¢dfg d¢dfg d¢dfg	f}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          t          d¦  «        t          d¦  «        dœdt          ¦  «        d}} ddd gdfg d!¢dfg d"¢dfg d#¢dfg d$¢dfg d%¢dfg d&¢dfg d'¢dfg d(¢dfg d)¢dfg d*¢dfg d+¢dfg d,¢dfgf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          t          t          d-t          z                       ¦   «         ¦  «        ¦  «        ¦  «        }t          dddd.œ|t          ¦  «        } t          | |t          ¦  «        d/u sJ ‚dg d0¢dfg d1¢dfg d2¢dfg d3¢dfgf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚dg d0¢g d1¢g d2¢g d3¢gf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          t          t          d4t          z                       ¦   «         ¦  «        ¦  «        ¦  «        }t          j        g d5¢¦  «        } t          | |t          ¦  «        d/u sJ ‚dg d6¢dfg d7¢dfgf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚dg d6¢g d7¢gf}t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd¦  «         t          | |t          ¦  «        |k    sJ ‚t          j        dd8¦  «         t          t          d9„ ¦  «         t          j        d¦  «         d S ):Nro   r   ra   ÚGF_FACTOR_METHODÚ	berlekampÚ
zassenhausÚshoup)ra   r   r   ra   r   rb   rÇ   rå   rç   rŽ   rß   )
ra   ra   r|   ra   r   r|   r|   r|   r   r   )ra   r”   r`   )ra   rc   r   r�   r`   rb   )é    r   )ra   r   r   r   r   r   r   r   rc   r   r   r   r   r   r   r   r|   )ra   r   r   r   r   r   r   r   r�   r   r   r   r   r   r   r   r|   r�   r`   rc   )ra   r   r”   )ra   rb   rb   )ra   r”   rb   )ra   r   r`   r   r„   )ra   r   rt   r   r„   )	ra   r   r   r   ra   r   r   r   rt   )	ra   r   r   r   r|   r   r   r   rt   rì   r„   )ra   re   r`   )ra   rt   r�   rb   )ra   r”   r”   rb   )ra   r   r   r”   r   r   re   )ra   rb   r   r�   re   rt   re   )ra   rb   rc   r�   r   rt   re   )ra   rb   rt   r   r�   re   re   )ra   rc   rc   ra   rt   r�   re   )ra   r`   rt   r   r�   rt   re   )ra   rt   rb   r„   r”   r�   re   )ra   r|   re   r„   r|   r„   re   )ra   r|   r|   ra   re   r”   re   rô   rõ   Trö   )ra   i‘> i‰. iS it  )ra   iQ iËÝ  i:  iW{  r÷   rØ   )ra   rb   r`   rï   é)   é'   é&   )ra   é,   rï   )ra   ro   rz   é   é   rÕ   c                  ó2   — t          ddgdt          ¦  «        S )Nra   ro   )r>   rH   rg   r^   r\   rœ   z test_gf_factor.<locals>.<lambda>J  s   € �Y¨¨1 v¨rµ2Ñ6Ô6€ r^   )r>   rH   r=   rÚ   rÛ   r�   r   r   rJ   rø   rI   rù   r5   rK   rÜ   )r   rX   r�   s      r\   Útest_gf_factorr  v  sF  € Ý�R˜�RÑ Ô  Q¨ GÒ+Ð+Ð+Ð+Ý�a�S˜"�bÑ!Ô! a¨ WÒ,Ð,Ð,Ð,Ý�a˜�V˜R¥Ñ$Ô$¨¨q°!¨f°a¨[¨MÐ(:Ò:Ð:Ð:Ð:å˜˜R¥Ñ$Ô$¨¨B¨Ò/Ð/Ð/Ð/Ý˜!˜˜b¥"Ñ%Ô%¨!¨R¨Ò0Ð0Ð0Ð0Ý˜!˜Q˜ ¥RÑ(Ô(¨Q°!°Q°°¨MÒ9Ð9Ð9Ð9å
„LÐ# [Ñ1Ô1Ð1å˜˜R¥Ñ$Ô$¨¨B¨Ò/Ð/Ð/Ð/Ý˜!˜˜b¥"Ñ%Ô%¨!¨R¨Ò0Ð0Ð0Ð0Ý˜!˜Q˜ ¥RÑ(Ô(¨Q°!°Q°°¨MÒ9Ð9Ð9Ð9å
„LÐ# \Ñ2Ô2Ð2å˜˜R¥Ñ$Ô$¨¨B¨Ò/Ð/Ð/Ð/Ý˜!˜˜b¥"Ñ%Ô%¨!¨R¨Ò0Ð0Ð0Ð0Ý˜!˜Q˜ ¥RÑ(Ô(¨Q°!°Q°°¨MÒ9Ð9Ð9Ð9å
„LÐ# WÑ-Ô-Ð-å�œ ™œ R­Ñ,Ô,°°B°Ò7Ð7Ð7Ð7Ý�œ  ™œ b­"Ñ-Ô-°!°R°Ò8Ð8Ð8Ð8Ý�œ  A ™œ¨­RÑ0Ô0°Q¸!¸Q¸¸°MÒAÐAÐAÐAåŒ6�/�/�/Ñ"Ô" A€q€Aà	
ˆq�!ˆf�aˆ[Ø�!ˆf�aˆ[Øˆiˆi˜ˆ^ðð 	€Aõ „LÐ# [Ñ1Ô1Ð1Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# \Ñ2Ô2Ð2Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# WÑ-Ô-Ð-Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#à	
ˆa�ˆVØ�ˆVØˆYˆYðð 	€Aõ „LÐ# [Ñ1Ô1Ð1Ý˜˜A�rÑ"Ô" aÒ'Ð'Ð'Ð'å
„LÐ# \Ñ2Ô2Ð2Ý˜˜A�rÑ"Ô" aÒ'Ð'Ð'Ð'å
„LÐ# WÑ-Ô-Ð-Ý˜˜A�rÑ"Ô" aÒ'Ð'Ð'Ð'åÐ5Ð5Ð5°rÑ:Ô:¸B€q€Aà	
ˆq�!ˆf�aˆ[Øˆiˆi˜ˆ^Øˆlˆl˜AÐð ð 	!€Aõ „LÐ# [Ñ1Ô1Ð1Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# \Ñ2Ô2Ð2Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# WÑ-Ô-Ð-Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#àˆ<ˆ<˜€q€Aà	
ˆq�!ˆf�aˆ[˜A˜q˜6 1˜+Ð&Ð'€Aå
„LÐ# [Ñ1Ô1Ð1Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# \Ñ2Ô2Ð2Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# WÑ-Ô-Ð-Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#à-Ð-Ð-¨r€q€Aà	
ˆq�!ˆf�aˆ[˜9˜9˜9 a˜.Ð+=Ð+=Ð+=¸qÐ*AÐBÐC€Aå
„LÐ# [Ñ1Ô1Ð1Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# \Ñ2Ô2Ð2Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# WÑ-Ô-Ð-Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å˜Q 1˜˜ r­2Ñ.Ô.°€q€Aà	
ÐBÐBÐBÀAÐFØBÐBÐBÀAÐFðHð 	I€Aõ „LÐ# [Ñ1Ô1Ð1Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# \Ñ2Ô2Ð2Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# WÑ-Ô-Ð-Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å�R ™UœU¥r¨!¡u¤uÐ-Ð-¨rµ2Ñ6Ô6¸€q€Aà	
ˆq�!ˆf�aˆ[Ø�!ˆf�aˆ[Øˆiˆi˜ˆ^Øˆiˆi˜ˆ^Øˆiˆi˜ˆ^Øˆoˆo˜qÐ!Øˆoˆo˜qÐ!Ø)Ð)Ð)¨1Ð-Ø*Ð*Ð*¨AÐ.ð0ð 	1€Aõ „LÐ# [Ñ1Ô1Ð1Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# \Ñ2Ô2Ð2Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# WÑ-Ô-Ð-Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å�R ™UœU¥r¨!¡u¤uÐ-Ð-¨rµ2Ñ6Ô6¸€q€Aà	
ˆq�!ˆf�aˆ[Øˆiˆi˜ˆ^Øˆlˆl˜AÐØˆlˆl˜AÐØ#Ð#Ð# QÐ'Ø#Ð#Ð# QÐ'Ø#Ð#Ð# QÐ'Ø#Ð#Ð# QÐ'Ø#Ð#Ð# QÐ'Ø#Ð#Ð# QÐ'Ø#Ð#Ð# QÐ'Ø%Ð%Ð% qÐ)Ø%Ð%Ð% qÐ)ð+ð 	,€Aõ „LÐ# [Ñ1Ô1Ð1Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# \Ñ2Ô2Ð2Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# WÑ-Ô-Ð-Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#õ 	�9•S˜%¥"™*×+Ò+Ñ-Ô-Ñ.Ô.Ñ/Ô/Ñ0Ô0€AÝ˜!  aÐ(Ð(¨!­RÑ0Ô0€Aå�A�q�"ÑÔ Ð%Ð%Ð%Ð%à	
ÐÐÐ Ð#Ø,Ð,Ð,¨aÐ0Ø-Ð-Ð-¨qÐ1Ø4Ð4Ð4°aÐ8ð:ð 	;€Aõ
 „LÐ# \Ñ2Ô2Ð2Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# WÑ-Ô-Ð-Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#à	
ÐÐÐØ+Ð+Ð+Ø,Ð,Ð,Ø3Ð3Ð3ð5ð 	6€Aõ
 „LÐ# \Ñ2Ô2Ð2Ý˜˜A�rÑ"Ô" aÒ'Ð'Ð'Ð'å
„LÐ# WÑ-Ô-Ð-Ý˜˜A�rÑ"Ô" aÒ'Ð'Ð'Ð'õ
 	�9•S˜$¥™)×*Ò*Ñ,Ô,Ñ-Ô-Ñ.Ô.Ñ/Ô/€AÝ
ŒÐ(Ð(Ð(Ñ)Ô)€Aå�A�q�"ÑÔ Ð%Ð%Ð%Ð%à	
ˆkˆkˆk˜1ÐØ!Ð!Ð! 1Ð%ð'ð 	(€Aõ „LÐ# \Ñ2Ô2Ð2Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#å
„LÐ# WÑ-Ô-Ð-Ý�Q˜�2ÑÔ !Ò#Ð#Ð#Ð#à	
ˆ[ˆ[ˆ[Ø Ð Ð ð"ð 	#€Aõ „LÐ# \Ñ2Ô2Ð2Ý˜˜A�rÑ"Ô" aÒ'Ð'Ð'Ð'å
„LÐ# WÑ-Ô-Ð-Ý˜˜A�rÑ"Ô" aÒ'Ð'Ð'Ð'å
„LÐ# WÑ-Ô-Ð-Ý
�8Ð6Ð6Ñ7Ô7Ð7Ý
„LÐ#Ñ$Ô$Ð$Ð$Ð$r^   c            	      ó~  — t          g d¢d¦  «        dk    sJ ‚t          ddd¦  «        dgk    sJ ‚t          ddd¦  «        g k    sJ ‚t          d	d
d¦  «        g k    sJ ‚t          ddd¦  «        g d¢k    sJ ‚t          ddd¦  «        g d¢k    sJ ‚t          d	dd¦  «        g d¢k    sJ ‚t          g d¢d¦  «        ddgk    sJ ‚t          g d¢d¦  «        g k    sJ ‚ddlm}   | dd¦  «        D ]d}t          t          d
dg|d
z
  |t          ¦  «        d
|t          ¦  «        }t          ||¦  «        t          t          d
|¦  «        ¦  «        k    sJ ‚Œet          g d¢d¦  «        dgk    sJ ‚t          g d¢d¦  «        dd
gk    sJ ‚t          g d¢d¦  «        g d¢k    sJ ‚t          g d¢dd¦  «        g d¢k    sJ ‚t          g d¢dd¦  «        g d¢k    sJ ‚t          g d¢dd¦  «        g d¢k    sJ ‚t          g d ¢d!¦  «        g d"¢k    sJ ‚t          g d#¢d$¦  «        d%d&gk    sJ ‚t          g d ¢d¦  «        g k    sJ ‚d S )'N)ra   r„   rb   re   ro   iœ  re   rc   r`   rb   r   rt   ra   )r   ra   rb   rc   re   rU   rÙ   )re   r”   é   r	  )r   rc   rt   r”   rU   rÙ   )rb   rc   ra   )rb   r   ra   )Ú
primerangeéd   )ra   rc   rb   rr   r„   )ra   rc   ra   r`   )rc   rt   r”   rc   )r   ra   rb   )ra   ra   éß   )	re   r×   rp   é   é(   rM   é:   éC   rN   )rc   r`   rb   rz   )rØ   é2   rP   )rc   rb   rb   rM   )é“   é¾   éê   )ra   ra   r„   é½   )r×   rM   rN   ép   é‹   é¯   )ra   rc   re   ra   r
  é<   r|   r
  )r?   r@   rA   Úsympy.ntheoryr  r   r    rH   ÚlistÚrangerB   rC   )r  rX   r   s      r\   Útest_gf_csolver"  N  s  € Ý�L�L�L "Ñ%Ô%¨Ò-Ð-Ð-Ð-å˜Q  1Ñ%Ô%¨!¨Ò,Ð,Ð,Ð,Ý˜Q  1Ñ%Ô%¨Ò+Ð+Ð+Ð+Ý˜Q  1Ñ%Ô%¨Ò+Ð+Ð+Ð+Ý˜Q  1Ñ%Ô%¨¨¨Ò8Ð8Ð8Ð8Ý˜Q  BÑ'Ô'¨:¨:¨:Ò5Ð5Ð5Ð5Ý˜Q  2Ñ&Ô&Ð*>Ð*>Ð*>Ò>Ð>Ð>Ð>å" 9 9 9¨aÑ0Ô0°Q¸°FÒ:Ð:Ð:Ð:Ý" 9 9 9¨aÑ0Ô0°BÒ6Ð6Ð6Ð6Ø(Ð(Ð(Ð(Ð(Ð(ØˆZ˜˜3ÑÔð Bð Bˆå�& ! Q ¨¨Q©°µ2Ñ6Ô6¸¸1½bÑAÔAˆÝ& q¨!Ñ,Ô,µµU¸1¸a±[´[Ñ0AÔ0AÒAÐAÐAÐAÐAå˜˜˜ qÑ)Ô)¨a¨SÒ0Ð0Ð0Ð0Ý˜˜˜ aÑ(Ô(¨Q°¨FÒ2Ð2Ð2Ð2Ý˜˜˜ aÑ(Ô(¨I¨I¨IÒ5Ð5Ð5Ð5åØˆˆ�Q˜ñô ØAÐAÐAòBð Bð Bð Bå˜˜˜ q¨!Ñ,Ô,°°°Ò<Ð<Ð<Ð<Ý˜˜˜ q¨!Ñ,Ô,°°°Ò?Ð?Ð?Ð?å�Y�Y�Y Ñ$Ô$Ð(CÐ(CÐ(CÒCÐCÐCÐCÝÐ%Ð%Ð% rÑ*Ô*¨r°2¨hÒ6Ð6Ð6Ð6Ý�Y�Y�Y Ñ#Ô# rÒ)Ð)Ð)Ð)Ð)Ð)r^   N)sÚsympy.polys.galoistoolsr   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   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   Úsympy.polys.polyerrorsrF   Úsympy.polysrG   rÚ   Úsympy.polys.domainsrH   Úsympy.core.numbersrI   Úsympy.ntheory.generaterJ   Úsympy.testing.pytestrK   r]   rh   rj   rm   rv   rx   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  r"  rg   r^   r\   ú<module>r*     sd  ððð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð8ð ð ð ð ð ð -Ð ,Ð ,Ð ,Ð ,Ð ,à "Ð "Ð "Ð "Ð "Ð "Ø !Ð !Ð !Ð !Ð !Ð !Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð+ð +ð +ð ð ð ð+ð +ð +ð5ð 5ð 5ð?ð ?ð ?ð>ð >ð >ð<ð <ð <ð&=ð =ð =ð"ð "ð "ð"ð "ð "ðGð Gð GðKJð KJð KJð\ Gð  Gð  GðF*ð *ð *ð=ð =ð =ðXð Xð Xð>^ð ^ð ^ð
Mð 
Mð 
Mð
Vð 
Vð 
Vð%ð %ð %ðGð Gð GðJð Jð Jð"<ð <ð <ð ð ð ð,Gð Gð Gð&0ð &0ð &0ðRð ð ðBð ð ð'1ð '1ð '1ðT('ð ('ð ('ðV*ð *ð *ð/ð /ð /ðU%ð U%ð U%ðp*ð *ð *ð *ð *r^   