§
    OŠtj˜H  ã                   ón  — d Z 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 ddlmZ ddlmZmZ ddlmZmZ ddlmZmZ ddlmZ ddl m!Z" d	„ Z#d
„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0ed„ ¦   «         Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7d„ Z8d„ Z9d „ Z:d!„ Z;d"„ Z<d#„ Z=d$„ Z>d%„ Z?d&„ Z@d'S )(zTests for Groebner bases. é    )ÚgroebnerÚsigÚsig_keyÚlbpÚlbp_keyÚcritical_pairÚcp_keyÚis_rewritable_or_comparableÚSignÚPolynÚNumÚs_polyÚ	f5_reduceÚgroebner_lcmÚgroebner_gcdÚis_groebnerÚ
is_reduced)Ú_representing_matrices)ÚlexÚgrlex)ÚringÚxring)ÚZZÚQQ)Úslow)Ú
polyconfigc                  ó6  — t          dt          t          ¦  «        \  } }}|dz  d|z  |dz  z  z   }||z  d|dz  z  z   dz
  }t          ||g| ¦  «        ||dz  t          dd¦  «        z
  gk    sJ ‚t          dt          t          ¦  «        \  } }}d|dz  z  |z  |dz  z   }d|dz  z  ||z  z   dz
  }t          ||g| ¦  «        ||dz  t          dd¦  «        z
  gk    sJ ‚t          dt          t          ¦  «        \  } }}}||dz  z
  }||dz  z
  }t          ||g| ¦  «        ||gk    sJ ‚t          dt          t          ¦  «        \  } }}|dz  d|z  |z  z
  }|dz  |z  |z   d|dz  z  z
  }t          ||g| ¦  «        |dz  ||z  t          dd¦  «         |z  |dz  z   gk    sJ ‚t          dt          t          ¦  «        \  } }}}|dz   |z   }|dz   |z   }t          ||g| ¦  «        |dz  |z
  ||z  |z
  ||z  |dz  z
  |dz  |dz  z
  gk    sJ ‚t          dt          t          ¦  «        \  } }}}|dz   |z   }|dz   |z   }t          ||g| ¦  «        |dz  |dz  z
  |dz  |z
  ||z  |z
  ||z  |dz  z
  gk    sJ ‚t          dt          t          ¦  «        \  } }}}|dz   |z   }|dz   |z   }t          ||g| ¦  «        |dz  |z
  ||z  |dz  z
  ||z  |z
  |dz  |dz  z
  gk    sJ ‚t          dt          t          ¦  «        \  } }}}|dz   |z   }|dz   |z   }t          ||g| ¦  «        |dz   |dz  z   |dz  |z
  ||z  |dz  z
  ||z  |z
  gk    sJ ‚t          dt          t          ¦  «        \  } }}}||dz  z
  }|dz   |z   }t          ||g| ¦  «        ||dz  z
  |dz  |z
  gk    sJ ‚t          dt          t          ¦  «        \  } }}}||dz  z
  }|dz   |z   }t          ||g| ¦  «        |dz  ||z  z
  ||z  |z
  | |dz  z   gk    sJ ‚t          dt          t          ¦  «        \  } }}}||dz  z
  }||dz  z
  }t          ||g| ¦  «        ||dz  z
  ||dz  z
  gk    sJ ‚t          dt          t          ¦  «        \  } }}}||dz  z
  }||dz  z
  }t          ||g| ¦  «        |dz  ||z  z
  ||z  |z
  | |dz  z   gk    sJ ‚t          dt          t          ¦  «        \  } }}}|dz   |z   }||dz  z
  }t          ||g| ¦  «        |||z  z
  |dz  |z
  gk    sJ ‚t          dt          t          ¦  «        \  } }}}|dz   |z   }||dz  z
  }t          ||g| ¦  «        |dz   |dz  z   ||z  |dz  z
  |dz  |z
  | ||z  z   gk    sJ ‚t          dt          t          ¦  «        \  } }}}||dz  z
  }||dz  z
  }t          ||g| ¦  «        ||dz  z
  ||dz  z
  gk    sJ ‚t          dt          t          ¦  «        \  } }}}||dz  z
  }||dz  z
  }t          ||g| ¦  «        |dz   |dz  z   ||z  |dz  z
  | ||z  z   | |dz  z   gk    sJ ‚t          dt          t          ¦  «        \  } }}}d|dz  z  |dz  z  d|z  |z  z   dz   }|dz  |dz  z   dz
  }t          ||g| ¦  «        |d|dz  z  z
  d	|d
z  z  z   d|dz  z  z
  d|z  z   |d	z  d|dz  z  z
  t          dd¦  «        |dz  z  z   t          dd¦  «        |dz  z  z
  t          dd¦  «        z   gk    sJ ‚d S )Núx,yé   é   é   zy,xúx,y,zé   é   é   é   é   é   )r   r   r   r   r   )ÚRÚxÚyÚfÚgÚzs         úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/polys/tests/test_groebnertools.pyÚ_do_test_groebnerr0      s¨  € Ý�%��SÑ!Ô!�F€A€qˆØ	ˆ1‰ˆq�‰s�1�a‘4‰x‰€AØ	ˆ!‰ˆa��1‘‰f‰�qÑ€Aå�Q˜�F˜AÑÔ 1 a¨¡d­R°°!©W¬W¡nÐ"5Ò5Ð5Ð5Ð5å�%��SÑ!Ô!�F€A€qˆØ	ˆ!ˆQ‰$‰ˆq‰�1�a‘4‰€AØ	ˆ!ˆQ‰$‰��1‘‰�qÑ€Aå�Q˜�F˜AÑÔ 1 a¨¡d­R°°!©W¬W¡nÐ"5Ò5Ð5Ð5Ð5å�G�R¥Ñ%Ô%�H€A€qˆˆ1Ø	ˆAˆq‰D‰€AØ	ˆAˆq‰D‰€Aå�Q˜�F˜AÑÔ 1 a &Ò(Ð(Ð(Ð(å�%��UÑ#Ô#�F€A€qˆØ	ˆ1‰ˆq�‰s�1‰u‰€AØ	ˆ1‰ˆQ‰�‰
�Q�q˜!‘t‘VÑ€Aå�Q˜�F˜AÑÔ 1 a¡4¨¨1©­r°!°A©w¬w¨h°q©j¸1¸a¹4Ñ.?Ð"@Ò@Ð@Ð@Ð@å�G�R¥Ñ%Ô%�H€A€qˆˆ1Ø	
ˆA‰ˆ�‰	€AØ	
ˆA‰ˆ�‰	€Aå�Q˜�F˜AÑÔ 1 a¡4¨!¡8¨Q¨q©S°1©W°a¸±c¸A¸q¹D±jÀ!ÀQÁ$ÈÈAÉÁ+Ð"NÒNÐNÐNÐNå�G�R¥Ñ'Ô'�H€A€qˆˆ1Ø	
ˆA‰ˆ�‰	€AØ	
ˆA‰ˆ�‰	€Aå�Q˜�F˜AÑÔ 1 a¡4¨!¨Q©$¡;°°1±°q±¸!¸A¹#À¹'À1ÀQÁ3ÈÈAÉÁ:Ð"NÒNÐNÐNÐNå�G�R¥Ñ%Ô%�H€A€qˆˆ1Ø	
ˆA‰ˆ�‰	€AØ	
ˆA‰ˆ�‰	€Aå�Q˜�F˜AÑÔ 1 a¡4¨!¡8¨Q¨q©S°1°a±4©Z¸¸1¹¸q¹À!ÀQÁ$ÈÈAÉÁ+Ð"NÒNÐNÐNÐNå�G�R¥Ñ'Ô'�H€A€qˆˆ1Ø	
ˆA‰ˆ�‰	€AØ	
ˆA‰ˆ�‰	€Aå�Q˜�F˜AÑÔ A q¡D 5¨1¨a©4¡<°°A±¸±¸1¸Q¹3ÀÀAÁ¹:ÀqÈÁsÈQÁwÐ"OÒOÐOÐOÐOå�G�R¥Ñ%Ô%�H€A€qˆˆ1Ø	ˆAˆq‰D‰€AØ	
ˆA‰ˆ�‰	€Aå�Q˜�F˜AÑÔ 1 q¨!¡t¡8¨Q°©T°A©XÐ"6Ò6Ð6Ð6Ð6å�G�R¥Ñ'Ô'�H€A€qˆˆ1Ø	ˆAˆq‰D‰€AØ	
ˆA‰ˆ�‰	€Aå�Q˜�F˜AÑÔ 1 a¡4¨!¨A©#¡:¨q°©s°Q©w¸¸¸QÀ¹T¹	Ð"BÒBÐBÐBÐBå�G�R¥Ñ%Ô%�H€A€qˆˆ1Ø	ˆAˆq‰D‰€AØ	ˆAˆq‰D‰€Aå�Q˜�F˜AÑÔ 1 q¨!¡t¡8¨Q°°A±©XÐ"6Ò6Ð6Ð6Ð6å�G�R¥Ñ'Ô'�H€A€qˆˆ1Ø	ˆAˆq‰D‰€AØ	ˆAˆq‰D‰€Aå�Q˜�F˜AÑÔ 1 a¡4¨!¨A©#¡:¨q°©s°Q©w¸¸¸QÀ¹T¹	Ð"BÒBÐBÐBÐBå�G�R¥Ñ%Ô%�H€A€qˆˆ1Ø	
ˆA‰ˆ�‰	€AØ	ˆAˆq‰D‰€Aå�Q˜�F˜AÑÔ 1 q¨¡s¡7¨A¨q©D°1©HÐ"5Ò5Ð5Ð5Ð5å�G�R¥Ñ'Ô'�H€A€qˆˆ1Ø	
ˆA‰ˆ�‰	€AØ	ˆAˆq‰D‰€Aå�Q˜�F˜AÑÔ A q¡D 5¨1¨a©4¡<°°1±°q¸!±t±¸QÀ¹TÀA¹XÈÀrÈAÈaÉCÁxÐ"PÒPÐPÐPÐPå�G�R¥Ñ%Ô%�H€A€qˆˆ1Ø	ˆAˆq‰D‰€AØ	ˆAˆq‰D‰€Aå�Q˜�F˜AÑÔ 1 q¨!¡t¡8¨Q°°A±©XÐ"6Ò6Ð6Ð6Ð6å�G�R¥Ñ'Ô'�H€A€qˆˆ1Ø	ˆAˆq‰D‰€AØ	ˆAˆq‰D‰€Aå�Q˜�F˜AÑÔ A q¡D 5¨1¨a©4¡<°°1±°q¸!±t±¸a¸RÀ!ÀAÁ#¹XÈÀrÈAÈqÉDÁyÐ"QÒQÐQÐQÐQå�G�R¥Ñ%Ô%�H€A€qˆˆ1Ø	ˆ!ˆQ‰$‰ˆq�!‰t‰�a˜‘c˜!‘eÑ˜aÑ€AØ	ˆ1‰ˆq�!‰t‰�a‰€Aå�Q˜�F˜AÑÔØ	ˆAˆa�‰d‰F‰
�Q�q˜!‘t‘VÑ˜a  1¡™fÑ$ q¨¡sÑ*Ø	ˆ1‰ˆq��A‘‰v‰�˜1˜Q™œ  1¡™Ñ$¥r¨!¨A¡w¤w¨q°!©t¡|Ñ3µb¸¸2±h´hÑ>ð#ò ð ð ð ð ð ó    c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S ©NÚ
buchberger©r   ©ÚconfigÚusingr0   © r1   r/   Útest_groebner_buchbergerr:      s…   € Ý	Œ˜|Ð	,Ñ	,Ô	,ð ð ÝÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   –2²6¹6c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S ©NÚf5br5   r6   r9   r1   r/   Útest_groebner_f5br?   ƒ   s…   € Ý	Œ˜uÐ	%Ñ	%Ô	%ð ð ÝÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r;   c                  ó,  — t          dt          t          ¦  «        \  } }}}|dz  |z   dz   |dz  |z   dz   ||z   |z  |dz  |z   z
  g}|t          dd¦  «        |dz  z  z   t          dd	¦  «        |d
z  z  z
  t          dd¦  «        |dz  z  z   t          dd	¦  «        |dz  z  z
  t          dd¦  «        |z  z   t          dd¦  «        z
  |t          d
d¦  «        |dz  z  z   t          dd¦  «        |d
z  z  z
  t          dd¦  «        |dz  z  z   t          dd¦  «        |dz  z  z
  t          dd¦  «        |z  z   t          dd¦  «        z
  |dz  d|dz  z  z
  d|d
z  z  z   d|dz  z  z
  d|dz  z  z   d|z  z
  dz   g}t          || ¦  «        |k    sJ ‚d S )Nr"   r    r!   r   é›   i  r&   ic  i±  r#   i®  ig  iÞ  é   é5   é[   éŸ   i  iƒ  i  i4  r'   r$   é)   éR   éY   é.   é   )r   r   r   r   )r)   r*   r+   r.   ÚFÚGs         r/   Ú_do_test_benchmark_minpolyrM   ‡   sÑ  € Ý�G�R¥Ñ%Ô%�H€A€qˆˆ1à	
ˆA‰�‰�A‰�q˜!‘t˜a‘x !‘| a¨!¡e¨q¡[°A°q±D¸1±HÑ%=Ð>€AØ	
�R��D‰\Œ\˜!˜Q™$ÑÑ	¥ C¨¡¤¨Q°©TÑ!1Ñ	1µB°t¸D±M´MÀ!ÀQÁ$Ñ4FÑ	FÍÈDÐQTÉÌÐVWÐYZÑVZÑIZÑ	ZÕ]_Ð`dÐeiÑ]jÔ]jÐklÑ]lÑ	lÕoqÐrtÐuwÑoxÔoxÑ	xØ	
�R��"‰XŒX�a˜‘d‰]Ñ	�R  3™ZœZ¨¨1©™_Ñ	,­r°#°c©{¬{¸1¸a¹4Ñ/?Ñ	?Å"ÀSÈÁ*Ä*ÈQÐPQÉTÁ/Ñ	QÕTVÐW[Ð\_ÑT`ÔT`ÐabÑTbÑ	bÕegÐhkÐloÑepÔepÑ	pØ	
ˆA‰��!�Q‘$‘‰˜˜A˜q™D™Ñ	  2 a¨¡d¡7Ñ	*¨R°°1±©WÑ	4°r¸!±tÑ	;¸bÑ	@ð	B€Aõ �A�q‰>Œ>˜QÒÐÐÐÐÐr1   c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r3   ©r7   r8   rM   r9   r1   r/   Ú!test_benchmark_minpoly_buchbergerrP   ‘   s…   € Ý	Œ˜|Ð	,Ñ	,Ô	,ð %ð %Ý"Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %r;   c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r=   rO   r9   r1   r/   Útest_benchmark_minpoly_f5brR   •   s…   € Ý	Œ˜uÐ	%Ñ	%Ô	%ð %ð %Ý"Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %r;   c                  óô  ‡— t          dd¦  «        Šg d¢} t          d„ ‰D ¦   «         t          t          ¦  «        \  }Šˆfd„| D ¦   «         } ‰\  }}}}}}}}	}
}}}d„ ‰D ¦   «         }d„ | D ¦   «         }||z   }t	          |d d…         |¦  «        ||z   |z   ||z
  ||z
  ||z
  ||z   |z   ||z
  ||z
  |	|z   |z   |
|z
  ||z   |z   |d	z  ||z  z   |d	z  z   |d
z  dz
  gk    sJ ‚t	          ||¦  «        dgk    sJ ‚d S )Nr!   rJ   ))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%   rW   )rW   rU   )rU   rV   )rV   rT   )r&   rT   )r&   rW   )r'   rU   )r$   rV   )r%   rT   )r    r#   c                 ó   — g | ]}d |z  ‘ŒS )zx%dr9   )Ú.0Úvs     r/   ú
<listcomp>z+test_benchmark_coloring.<locals>.<listcomp>    s   € Ð)Ð)Ð) �5˜1‘9Ð)Ð)Ð)r1   c                 óB   •— g | ]\  }}‰|d z
           ‰|d z
           f‘ŒS )r!   r9   )rY   ÚiÚjÚVs      €r/   r[   z+test_benchmark_coloring.<locals>.<listcomp>¡   s2   ø€ Ð,Ð,Ð,¡$ ! Qˆ!ˆA�‰EŒ(�A�a˜!‘e”HÐ	Ð,Ð,Ð,r1   c                 ó   — g | ]
}|d z  dz
  ‘ŒS )r    r!   r9   )rY   r*   s     r/   r[   z+test_benchmark_coloring.<locals>.<listcomp>¥   s    € Ð	Ð	Ð	�qˆ!ˆQ‰$�‰(Ð	Ð	Ð	r1   c                 ó6   — g | ]\  }}|d z  ||z  z   |d z  z   ‘ŒS )r   r9   )rY   r*   r+   s      r/   r[   z+test_benchmark_coloring.<locals>.<listcomp>¦   s1   € Ð	*Ð	*Ð	*¡  1ˆ!ˆQ‰$��1‘‰*�q˜!‘tÑ
Ð	*Ð	*Ð	*r1   éÿÿÿÿr   r    )Úranger   r   r   r   )ÚEr)   Úx1Úx2Úx3Úx4Úx5Úx6Úx7Úx8Úx9Úx10Úx11Úx12ÚI3ÚIgÚIr_   s                    @r/   Útest_benchmark_coloringrt   š   s}  ø€ Ýˆa�ÑÔ€Að	Gð 	Gð 	G€Aõ Ð)Ð) aÐ)Ñ)Ô)­2­sÑ3Ô3�D€A€qØ,Ð,Ð,Ð,¨!Ð,Ñ,Ô,€Aà89Ñ5€BˆˆB��B˜˜B  B¨¨S°#à	Ð	˜AÐ	Ñ	Ô	€BØ	*Ð	*¨Ð	*Ñ	*Ô	*€Bà
ˆR‰€Aå�A�c�r�c”F˜AÑÔØ
ˆS‰�3‰Ø
ˆS‰Ø
ˆS‰Ø
ˆS‰Ø
ˆS‰�3‰Ø
ˆS‰Ø
ˆS‰Ø
ˆS‰�3‰Ø
ˆS‰Øˆc‰	�C‰ØˆQ‰��S‘Ñ˜3 ™6Ñ!ØˆQ‰�‰
ð#ò ð ð ð õ �A�q‰>Œ>˜a˜SÒ Ð Ð Ð Ð Ð r1   c                  óÚ  ‡— t          dt          t          ¦  «        \  Š} }}| d|z  z   d|z  z   dz
  | dz  d|dz  z  z   d|dz  z  z   | z
  d| z  |z  d|z  |z  z   |z
  g}t          |‰¦  «        dd| z  z   d|z  z   d|dz  z  z   d|d	z  z  z
  d|z  d	|z  z   d
|dz  z  z
  d|d	z  z  z   ||dz  z   d|d	z  z  z
  d|dz  z  z   gk    sJ ‚t          dt          t          ¦  «        \  Š} }}ˆfd„|D ¦   «         }t          |‰¦  «        d|z  d	|z  z   d
|dz  z  z
  d|d	z  z  z   | |z   d	|dz  z  z
  d|dz  z  z   | d|z  z
  d|z  |z  z   d|dz  z  z   d| z   d|z  z   d|z  z   gk    sJ ‚d S )Nzx:3r   r!   iùÿÿÿr$   r%   éž   i¤  r    éO   éÒ   é(   éT   r#   c                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r9   ©Úset_ring©rY   r]   r)   s     €r/   r[   z0_do_test_benchmark_katsura_3.<locals>.<listcomp>É   ó#   ø€ Ð$Ð$Ð$˜Aˆ!�*Š*�Q‰-Œ-Ð$Ð$Ð$r1   r&   rU   rT   rb   ©r   r   r   r   r   )Úx0re   rf   rs   r)   s       @r/   Ú_do_test_benchmark_katsura_3r‚   ¼   s  ø€ Ý�u�b¥#Ñ&Ô&�K€A€rˆ"ˆRØ	ˆa�‰d‰�Q�r‘TÑ	˜AÑ	Ø	ˆQ‰��2�q‘5‘‰˜1˜R ™U™7Ñ	" RÑ	'Ø	
ˆ2‰ˆb‰�1�R‘4˜‘7Ñ	˜RÑ	ð	!€Aõ �A�q‰>Œ>Ø
ˆQˆr‰T‰	�A�b‘DÑ˜3˜r 1™u™9Ñ$ s¨2¨q©5¡yÑ0Ø	ˆ"‰ˆq�‰t‰�b˜˜Q™‘hÑ  R¨¡U¡Ñ*Ø
ˆR�‰U‰
�R˜˜A™‘XÑ  2 q¡5¡Ñ(ðò ð ð ð õ �u�b¥%Ñ(Ô(�K€A€rˆ"ˆRØ$Ð$Ð$Ð$ Ð$Ñ$Ô$€Aå�A�q‰>Œ>Ø	ˆ"‰ˆq�‰t‰�b˜˜Q™‘hÑ  R¨¡U¡Ñ*Ø	ˆˆb‰�1�R˜‘U‘7Ñ˜Q˜r 1™u™WÑ$Ø	ˆˆa�‰d‰
�R˜‘U˜2‘XÑ  2 q¡5¡Ñ(Ø
ˆR‰�!�B‘$‰˜˜2™Ñð	ò ð ð ð ð ð r1   c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r3   ©r7   r8   r‚   r9   r1   r/   Ú"test_benchmark_katsura3_buchbergerr…   Ò   ó…   € Ý	Œ˜|Ð	,Ñ	,Ô	,ð 'ð 'Ý$Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'r;   c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r=   r„   r9   r1   r/   Útest_benchmark_katsura3_f5brˆ   Ö   ó…   € Ý	Œ˜uÐ	%Ñ	%Ô	%ð 'ð 'Ý$Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'r;   c                  ó&  ‡— t          dt          t          ¦  «        \  Š} }}}| d|z  z   d|z  z   d|z  z   dz
  | dz  d|dz  z  z   d|dz  z  z   d|dz  z  z   | z
  d| z  |z  d|z  |z  z   d|z  |z  z   |z
  |dz  d| z  |z  z   d|z  |z  z   |z
  g}t          |‰¦  «        d| z  d|dz  z  z
  d|dz  z  z   d	|d
z  z  z   d|dz  z  z
  d|dz  z  z
  d|dz  z  z   d|z  z   dz
  d|z  d|dz  z  z
  d|dz  z  z   d|d
z  z  z
  d|dz  z  z
  d|dz  z  z   d|dz  z  z
  d|z  z
  d|z  d|dz  z  z   d|dz  z  z
  d|d
z  z  z   d|dz  z  z   d|dz  z  z
  d|dz  z  z
  d|z  z   d |d!z  z  d"|dz  z  z
  d#|dz  z  z   d$|d
z  z  z   d%|dz  z  z
  d&|dz  z  z   d'|dz  z  z   |z
  gk    sJ ‚t          dt          t          ¦  «        \  Š} }}}ˆfd(„|D ¦   «         }t          |‰¦  «        d)|z  d*|dz  z  z
  d+|z  |z  z   d,|z  z
  d-|dz  z  z   d.|dz  z  z
  d/|dz  z  z
  d0|z  z   | d1|dz  z  z   d2|dz  z  z
  d3|z  |z  z   d4|z  z
  d5|dz  z  z
  d6|dz  z  z   d7|z  z
  d8|z  d9|dz  z  |z  z   d:|dz  z  z
  d;|z  |z  z
  d<|z  z   d=|dz  z  z
  d>|dz  z  z   d?|z  z   d@|z  dA|dz  z  z   dB|z  |dz  z  z   dC|z  |z  z
  dD|z  z   dE|dz  z  z   dF|dz  z  z
  d|z  z   d|dz  z  |z
  d|dz  z  z
  dG|z  |z  z
  d|z  z   d'|dz  z  z
  d
|z  z   dH|z  |z  |z
  dH|dz  z  z   d4|z  |z  z   d|z  z
  d|dz  z  z   d|z  z
  dH|z  |z  |z
  d|dz  z  z   d<|z  |z  z   d|z  z
  dI|dz  z  z   d7|z  z
  | d|z  z   d|z  z   d|z  z   dz
  gk    sJ ‚d S )JNzx:4r   r!   ió9Z l    '�\” r$   l    =Ø r'   l   °:G r&   l   h2÷ r#   i0%2r    iþeiF†J iQ l    ßBZ l    •rD l   ˜>% l   ¸!I i|À�0i°œ iÁ‹ l   àkävYl   `A+Ý l   p› l   \8_]
 iÜ®±xiô(æiô9Øi0õ r%   i€l iÀ<  iH  i`  é$   é   c                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r9   r|   r~   s     €r/   r[   z0_do_test_benchmark_katsura_4.<locals>.<listcomp>ê   r   r1   i‰  i6  in  é;   im iXd i¦  iþ  éÄ   é   é<   é   é¨   éS   rW   iúÿÿÿin  é½   iÒ  é    iv  é9   é3   é!   é?   iÜ  é¼   é"   iØ	  iQ  é   é   é   r€   )r�   re   rf   rg   rs   r)   s        @r/   Ú_do_test_benchmark_katsura_4r    Ú   s
  ø€ Ý˜%¥¥SÑ)Ô)�N€A€rˆ"ˆR�Ø	ˆa�‰d‰�Q�r‘TÑ	˜A˜b™DÑ	  1Ñ	$Ø	ˆQ‰��2�q‘5‘‰˜1˜R ™U™7Ñ	" Q r¨1¡u¡WÑ	,¨rÑ	1Ø	
ˆ2‰ˆb‰�1�R‘4˜‘7Ñ	˜Q˜r™T "™WÑ	$ rÑ	)Ø	ˆQ‰��2‘�b‘‰˜1˜R™4 ™7Ñ	" RÑ	'ð	)€Aõ
 �A�q‰>Œ>Ø�‰
�\ " a¡%Ñ'Ñ'¨+°b¸!±eÑ*;Ñ;¸kÈ"ÈaÉ%Ñ>OÑOÐR\Ð]_ÐabÑ]bÑRbÑbÐenÐoqÐstÑotÑetÑtð  xAð  BDð  FGñ  BGñ  xGñ  	Gð  JQð  RTñ  JTñ  	Tð  W^ñ  	^Ø�‰
�[  Q¡Ñ&Ñ&¨°R¸±UÑ):Ñ:¸[ÈÈQÉÑ=NÑNÐQ[Ð\^Ð`aÑ\aÑQaÑaÐdmÐnpÐrsÑnsÑdsÑsÐv}ð  Að  CDñ  Dñ  wDñ  	Dð  GNð  OQñ  GQñ  	QØ�‰
�\ " a¡%Ñ'Ñ'¨,°r¸1±uÑ*<Ñ<¸{È2ÈqÉ5Ñ?PÑPÐS^Ð_aÐcdÑ_dÑSdÑdÐgqÐrtÐvwÑrwÑgwÑwð  {Dð  EGð  IJñ  EJñ  {Jñ  	Jð  MUð  VXñ  MXñ  	XØˆr�1‰u‰�u˜R ™U‘{Ñ" U¨2¨q©5¡[Ñ0°4¸¸A¹±:Ñ=ØˆR�‰U‰
ñ	Ø˜˜A™‘Xñ	Ø " 2 q¡5¡ñ	)Ø+-ñ	.ð	ò ð ð ð õ ˜%¥¥UÑ+Ô+�N€A€rˆ"ˆR�Ø$Ð$Ð$Ð$ Ð$Ñ$Ô$€Aå�A�q‰>Œ>ØˆB‰��b˜!‘e‘Ñ˜d 2™g b™jÑ(¨2¨b©5Ñ0°6¸"¸a¹%±<Ñ?À%ÈÈAÉÁ+ÑMÐPSÐTVÐXYÑTYÑPYÑYÐ\`ÐacÑ\cÑcØ	ˆˆc�"�a‘%‰i‰˜"˜R ™U™(Ñ" R¨¡U¨2¡XÑ-°°2±Ñ5¸¸BÀ¹E¹	ÑAÀBÀrÈ1ÁuÁHÑLÈqÐQSÉtÑSØ
ˆ2‰��R˜‘U‘
˜2‘Ñ  B¨¡E¡	Ñ)¨C°©F°2©IÑ5¸¸2¹Ñ=ÀÀBÈÁEÁ	ÑIÈBÈrÐSTÉuÉHÑTÐWYÐZ\ÑW\Ñ\Ø
ˆ2‰��2�q‘5‘Ñ˜4 ™7 2 q¡5™=Ñ(¨3¨r©6°"©9Ñ4°r¸"±uÑ<¸tÀBÈÁE¹zÑIÈCÐPRÐTUÑPUÉIÑUÐXYÐZ\ÑX\Ñ\Ø	ˆ"ˆa‰%‰�"‰�q˜˜Q™‘wÑ  B¡ r¡Ñ)¨A¨b©DÑ0°2°b¸!±e±8Ñ;¸aÀ¹dÑBØ
ˆ2‰ˆb‰�2‰˜˜2˜q™5™Ñ  2 b¡5¨¡8Ñ+¨a°©dÑ2°Q°r¸1±u±WÑ<¸qÀ¹tÑCØ
ˆ2‰ˆb‰�2‰˜˜"˜a™%™Ñ " R¡%¨¡(Ñ*¨Q¨r©TÑ1°B°r¸1±u±HÑ<¸qÀ¹tÑCØ
ˆQˆr‰T‰	�A�b‘DÑ˜1˜R™4Ñ !Ñ#ð	ò 	ð 	ð 	ð 	ð 	ð 	r1   c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r3   ©r7   r8   r    r9   r1   r/   Ú#test_benchmark_kastura_4_buchbergerr£   ÷   r†   r;   c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r=   r¢   r9   r1   r/   Útest_benchmark_kastura_4_f5br¥   û   r‰   r;   c                  óª  ‡— t          dt          t          ¦  «        \  Š} }d| dz  z  d| dz  z  z   d| dz  z  z
  d| d	z  z  z
  d
| dz  z  z
  d| dz  z  z   d| dz  z  z   d| z  z
  dz   dd|z  z
  | dz  z  dd|z  z
  | dz  z  z   dd|z  z   | d	z  z  z   dd|z  z   | dz  z  z   dd|z  z   | dz  z  z   d|z  | dz  z  z   dd|z  z
  | z  z   dz   d|z  z   g}t          |‰¦  «        d| z  d|dz  z  z
  d|dz  z  z
  d|d	z  z  z
  d |dz  z  z
  d!|dz  z  z
  d"|dz  z  z
  d#|z  z
  d$z
  d%|dz  z  d&|dz  z  z   d'|dz  z  z   d(|d	z  z  z   d)|dz  z  z   d*|dz  z  z   d+|dz  z  z   d,|z  z   d-z   gk    sJ ‚t          dt          t          ¦  «        \  Š} }ˆfd.„|D ¦   «         }t          |‰¦  «        d/|dz  z  | z  d0|dz  z  z
  d1|dz  z  | z  z   d2|dz  z  z
  d3|z  | z  z   d4|z  z
  d5| dz  z  z   d6| z  z   d7z
  d8|dz  z  d9|dz  z  z   d:|dz  z  | z  z   d;|dz  z  z   d<|z  | z  z   d=|z  z   d>| dz  z  z   d?| z  z   d@z   dA|dz  z  dB|dz  z  | z  z   dC|dz  z  z
  dD|z  | z  z   dE|z  z
  dF| dz  z  z   dG| dz  z  z   dH| z  z   dIz
  dJ|dz  z  dK|dz  z  | z  z   dL|dz  z  z
  dM|z  | dz  z  z   dN|z  | z  z   dO|z  z
  dP| dz  z  z   dQ| z  z   dRz
  gk    sJ ‚d S )SNzx,trW   r%   r‹   r$   r–   r'   éü   r&   éN   r#   iÔ  r    i   r   él   i¸ÿÿÿéH   i ÿÿÿéÀ   i   iì  i8  ilþÿÿiÀýÿÿi@  é`   l     
RtJ)1~M²C©MgKÝb¨q«ùcÃL¶e«l   Árýa2ÈU!J�'B\KW4Du+Á%B:®N'Œ/|,ç3D`N l    >C_õ=DèmbgrVJ5n,»Oÿ{Ž-[8 ·Dî/7Ê"²l   *×uæQ!ó3'É; ÄPtµSäo"_ ;�2g0PZwg
l   À§.ëSö[_iºªák
8Cšn|#	v*’u0Ht–S¡l    5‘u3ÜjÁx˜]L*Ÿ(ýIIyLÚ1iC©Âo§latÖ1:'É6(l    P­gÿ];meVŠÎqÌæ'Ž%°op¹Z "¼Mmtä:%63l    P*71}<U1qÕq,¼+¼'ÔcíX0rVvQa;ô pA9l    @ir›0ê@ƒ>/3,«F%*Á;W@ {=5|o&à(Ëc_46l   ±¥:ÕW]l   `k-·@\K'l   À,8y'X^l    4C|	,Ydm l    Loÿ5§R®s l     "#?ÇVq l    @otc?c l      t¢-JOl     Sêz(Gçc                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r9   r|   r~   s     €r/   r[   z1_do_test_benchmark_czichowski.<locals>.<listcomp>  r   r1   l	   jëP.qlj=ËMÕjò1l	   Ç:q~³\Ÿq,9D³ ûhÊ`l
   \»Bú{•+9Cý0ä-öf l
   ÌnÇ•_ùYø\ûD&n»Ýb l
   àjj9žk${Ï.øûZG�c l
   èv^˜OÓ1mDMöß( l	   À|!�gc]0„t|- l
   @þ�Nw¿*È%’iLM!6 l
    zÁ *r‘p“KÍ0Í‘Z% l   ½4X\Üh@T¦:VçÇ%„]yFó= l   è 8bH�(KK¬nªEm?„p©@(8‘*. l   `'[º%¹­gQ CÉe4
?ß÷XG l   `Abwc}îÛ{°?êV¦ïq¿ï*ŸqA l    .ì'l�#8Ê}¢(×ýU×U�,±7 l   €¹û8…úLø*ŠeÆ?¸FRÄm Š& l    ^¢4O}ÏPÐ\X9Ó�T7cùq!2l    &mu@ŠI«¶gG8Hˆ2GÂW l    m
QÁ<²-Ø-å:Ôbá8Úûa¼oíTV lõÿÿÿkJöXˆ]¶JDh6,^%Š>a1R l   4c DHa¤d,;T&~DÈ!C0 l   ¤3Áb!Ó@ª+ï(#�5;1l    a¤°R¦z2y,äv“D‰ l   [¨K0PÒRž;Tze3D©lol
   €,'_w‰R²°$9M^ƒDr.l
   À[66­F£W×g¹^Ž4ýPw*
3l   @;ñk»À`¾n|Ø)É^ó&a l   €Z(G“2uj²)œ)Žg¹CÔZ� löÿÿÿO]ÜiMW
âjVÝo5CU l
   D
¦K6º
u^·´¦@_3 l
   ¼|Eù}Þw˜BÕ=ñ`/kœ!l
     ñ9ä)šP9@®II%N`ü; l
   €VÐDqtÿRx
T,S) l
   °ZDóHbEV*x
Ò5VGI2l
   @4•e`2e²r¬1NX0yÂ6 l
   ÀîÁ4IÒDê¼V!%v l
   €_Ã+YSYB&…kþ'?®%l r€   )r*   Útrs   r)   s      @r/   Ú_do_test_benchmark_czichowskir¯   ÿ   sÌ  ø€ Ý�%��SÑ!Ô!�F€A€qˆØ	
ˆ1ˆa‰4‰�"�Q˜‘T‘'Ñ	˜B˜q !™t™GÑ	# c¨!¨Q©$¡hÑ	.°°A°q±D±Ñ	8¸3¸qÀ!¹t¹8Ñ	CÀcÈ!ÈQÉ$ÁhÑ	NÐQTÐUVÑQVÑ	VÐYZÑ	ZØ
��1‘‰*�a˜‘dÑ	˜d S¨¡U™l¨A¨q©DÑ0Ñ	0°C¸#¸a¹%±KÀÀAÁÑ3EÑ	EÈÐPTÐUVÑPVÉÐXYÐ[\ÑX\ÑH\Ñ	\Ð`cÐfiÐjkÑfkÑ`kÐmnÐpqÑmqÑ_qÑ	qÐuyÐz{Ñu{Ð}~ð  ABñ  ~Bñ  uBñ  
Bð  FJð  MPð  QRñ  MRñ  FRð  TUñ  EUñ  
Uð  XZñ  
Zð  ]`ð  abñ  ]bñ  
bð	c€Aõ �A�q‰>Œ>Ø]Ð^_Ñ_ØeÐfgÐijÑfjÑjñ	kàfÐghÐjkÑgkÑkñ	lð 	gÐghÐjkÑgkÑkñ	lð 	hÐhiÐklÑhlÑlñ		mð
 	hÐhiÐklÑhlÑlñ	mð 	gÐghÐjkÑgkÑkñ	lð 	gÐghÑhñ	ið 	fñ	fð 	˜a ™dÑ"Ø˜q !™tÑ#ñ	$à  1¡Ñ$ñ	%ð 	   1¡Ñ$ñ	%ð 	!  A¡Ñ%ñ		&ð
 	!  A¡Ñ%ñ	&ð 	   1¡Ñ$ñ	%ð 	  Ñ!ñ	"ð 	ñ	ðò ð ð ð õ* �%��UÑ#Ô#�F€A€qˆØ$Ð$Ð$Ð$ Ð$Ñ$Ô$€Aå�A�q‰>Œ>Ø1°!°Q±$Ñ6°qÑ8Ø1°!°Q±$Ñ6ñ	7à1°!°Q±$Ñ6°qÑ8ñ	9ð 	3°1°a±4Ñ7ñ	8ð 	3°1Ñ4°QÑ6ñ		7ð
 	3°1Ñ4ñ	5ð 	/¨q°!©tÑ3ñ	4ð 	2°!Ñ3ñ	4ð 	2ñ	2ð 	EÀQÈÁTÑIØEÀaÈÁdÑJñ	KàDÀQÈÁTÑIÈ!ÑKñ	Lð 	FÀaÈÁdÑJñ	Kð 	EÀQÑFÀqÑHñ		Ið
 	FÀaÑGñ	Hð 	BÀ!ÀQÁ$ÑFñ	Gð 	EÀQÑFñ	Gð 	Eñ	Eð 9¸¸A¹Ñ=Ø7¸¸1¹Ñ<¸QÑ>ñ?à8¸¸A¹Ñ=ñ>ð 	9¸Ñ:¸1Ñ<ñ=ð 	9¸Ñ:ñ	;ð
 	6°a¸±dÑ:ñ;ð 	6°a¸±dÑ:ñ;ð 	9¸Ñ:ñ;ð 	9ñ9ð 4°A°q±DÑ8Ø2°1°a±4Ñ7¸Ñ9ñ:à4°Q¸±TÑ9ñ:ð 	3°1Ñ4°Q¸±TÑ9ñ:ð 	4°AÑ5°aÑ7ñ	8ð
 	5°QÑ6ñ7ð 	3°1°a±4Ñ7ñ8ð 	4°AÑ5ñ6ð 	4ñ4ð9%ò %ð %ð %ð %ð %ð %r1   c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r3   ©r7   r8   r¯   r9   r1   r/   Ú$test_benchmark_czichowski_buchbergerr²   D  s…   € å	Œ˜|Ð	,Ñ	,Ô	,ð (ð (Ý%Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (r;   c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r=   r±   r9   r1   r/   Útest_benchmark_czichowski_f5br´   I  s…   € Ý	Œ˜uÐ	%Ñ	%Ô	%ð (ð (Ý%Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (r;   c                  óž  ‡— t          dt          t          ¦  «        \  Š} }}}| |z   |z   |z   | |z  | |z  z   ||z  z   ||z  z   | |z  |z  | |z  |z  z   | |z  |z  z   ||z  |z  z   | |z  |z  |z  dz
  g}t          |‰¦  «        d| z  d|dz  z  z   d|dz  z  z
  d|z  z
  d|z  d|z  z   d|dz  z  z
  d|dz  z  z   d|z  z   d|dz  z  d|d	z  z  z   d|d
z  z  z
  d|dz  z  z
  d|z  |dz  z  d|z  z   |dz  z
  d|dz  z  z   d|z  z   |dz  |dz  z
  |dz  z
  dz   gk    sJ ‚t          dt          t          ¦  «        \  Š} }}}ˆfd„|D ¦   «         }t          |‰¦  «        d|z  |z  |dz  z
  |d
z  z   d|dz  z  z
  | d|dz  z  |dz  z  z   |z
  |dz  z
  d|z  z
  | d|z  |dz  z  z   d|z  z   d|dz  z  z   d|z  z   |dz  d|dz  z  |dz  z  z   |dz  z
  dz
  |dz  |z  ||dz  z  z   |dz  z   dz   ||dz  z  |dz  z
  |dz  |z  z
  d|z  |dz  z  z
  |dz  z
  |dz  |dz  z
  ||z  |dz  z   ||z  z   |dz  z   | |z   |z   |z   g	k    sJ ‚d S )Nza,b,c,dr!   r#   r    rW   r&   r$   r   rU   r'   rT   r%   c                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r9   r|   r~   s     €r/   r[   z/_do_test_benchmark_cyclic_4.<locals>.<listcomp>]  r   r1   r€   )ÚaÚbÚcÚdrs   r)   s        @r/   Ú_do_test_benchmark_cyclic_4r»   M  sV  ø€ Ý�i¥¥SÑ)Ô)�J€A€qˆˆ1ˆQà	
ˆQ‰�‰�Q‰Ø	
ˆ1‰ˆq�‰s‰�Q�q‘S‰˜1˜Q™3Ñ	Ø	
ˆ1‰ˆQ‰��1‘�Q‘‰˜˜1™˜Q™Ñ	  1¡ Q¡Ñ	&Ø	
ˆ1‰ˆQ‰ˆq‰�1‰ð	€Aõ
 �A�q‰>Œ>Ø	ˆ!‰ˆa��1‘‰f‰�q˜˜A™‘vÑ  !¡Ñ#Ø	ˆ!‰ˆa�‰c‰	�A�a˜‘d‘FÑ˜Q˜q !™t™VÑ# a¨¡cÑ)Ø	ˆ!ˆQ‰$‰��1�b‘5‘Ñ˜1˜Q ™T™6Ñ! A a¨¡d¡FÑ*Ø	ˆ!‰ˆAˆq‰D‰�1�Q‘3‰˜˜A™Ñ  ! Q¡$¡Ñ&¨¨1©Ñ,¨a°©e°a¸±d©l¸QÀ¹TÑ.AÀAÑ.Eð	ò ð ð ð õ �i¥¥UÑ+Ô+�J€A€qˆˆ1ˆQØ$Ð$Ð$Ð$ Ð$Ñ$Ô$€Aå�A�q‰>Œ>Ø	ˆ!‰ˆA‰��1‘‰�q˜!‘tÑ˜a  1¡™fÑ$Ø	
ˆˆQˆq�!‰t‰V�A�q‘D‰[Ñ˜1Ñ˜q !™tÑ# a¨¡cÑ)Ø	
ˆˆQˆq‰S��A‘‰X‰˜˜!™Ñ˜a  1¡™fÑ$ q¨¡sÑ*Ø	ˆ1‰ˆq��A‘‰v�a˜‘d‰{Ñ˜Q ™TÑ! AÑ%Ø	ˆ1‰ˆQ‰��1�a‘4‘‰˜!˜Q™$Ñ Ñ"Ø	ˆ!ˆQ‰$‰��A‘‰˜˜1™˜Q™Ñ  1¡ Q¨¡T¡Ñ)¨A¨q©DÑ0Ø	ˆ1‰ˆq�!‰t‰�Q�q‘S˜1˜a™4‘Z ! A¡#Ñ%¨¨1©Ñ,Ø	ˆA‰�‰	�A‰ð	ò 	ð 	ð 	ð 	ð 	ð 	r1   c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r3   ©r7   r8   r»   r9   r1   r/   Ú"test_benchmark_cyclic_4_buchbergerr¾   j  s…   € Ý	Œ˜|Ð	,Ñ	,Ô	,ð &ð &Ý#Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &r;   c                  ó~   — t          j        d¬¦  «        5  t          ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r=   r½   r9   r1   r/   Útest_benchmark_cyclic_4_f5brÀ   n  s…   € Ý	Œ˜uÐ	%Ñ	%Ô	%ð &ð &Ý#Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &r;   c                  ó  — t          dd¦  «        } t          dd¦  «        }t          dd¦  «        }t          | t          ¦  «        t          |t          ¦  «        k    sJ ‚t          |t          ¦  «        t          |t          ¦  «        k     sJ ‚d S )N©r   r   r   r   )r!   r!   r!   r#   )r   r   r   )r   r   r   )Ús1Ús2Ús3s      r/   Útest_sig_keyrÆ   r  s   € Ý	ˆX�qÑ	Ô	€BÝ	ˆX�qÑ	Ô	€BÝ	ˆX�qÑ	Ô	€Bå�2•sÑÔ�g b­#Ñ.Ô.Ò.Ð.Ð.Ð.Ý�2•sÑÔ�g b­#Ñ.Ô.Ò.Ð.Ð.Ð.Ð.Ð.r1   c                  ó¨  — t          dt          t          ¦  «        \  } }}}}t          t	          dd¦  «        | j        d¦  «        }t          t	          dd¦  «        | j        d¦  «        }t          t	          dd¦  «        | j        d¦  «        }t          |¦  «        t          |¦  «        k    sJ ‚t          |¦  «        t          |¦  «        k     sJ ‚d S )Núx,y,z,t©r   r   r   r   r    rT   r#   rJ   )r   r   r   r   r   Úzeror   )r)   r*   r+   r.   r®   Úp1Úp2Úp3s           r/   Útest_lbp_keyrÎ   {  s´   € Ý�i¥¥SÑ)Ô)�J€A€qˆˆ1ˆQå	�S�˜1ÑÔ˜qœv rÑ	*Ô	*€BÝ	�S�˜1ÑÔ˜qœv rÑ	*Ô	*€BÝ	�S�˜1ÑÔ˜qœv rÑ	*Ô	*€Bå�2‰;Œ;� ™œÒ$Ð$Ð$Ð$Ý�2‰;Œ;� ™œÒ$Ð$Ð$Ð$Ð$Ð$r1   c                  ó  — t          dt          t          ¦  «        \  } }}}}d||z  |dz  z  |dz  |dz  z  z   |dz  z
  dz
  df}d|dz   ||z  z
  ||z  z
  |dz  z
  df}d|dz  |dz  z  |dz  |dz  z  z   |z
  |z
  d	f}d
||z  ||d	z  z  z   ||z  z   |dz  z   df}t          ||| ¦  «        ddt          dd¦  «        fd|dz   ||z  z
  ||z  z
  |dz  z
  dfddt          dd¦  «        fd||z  |dz  z  |dz  |dz  z  z   |dz  z
  dz
  dffk    sJ ‚t          ||| ¦  «        ddt          dd¦  «        fd
||z  ||d	z  z  z   ||z  z   |dz  z   dfddt          dd¦  «        fd|dz  |dz  z  |dz  |dz  z  z   |z
  |z
  d	ffk    sJ ‚d S )NrÈ   ©rÉ   r#   r   r#   r!   ©rÉ   r   ©)r   r   r   r   r    r    r&   ©)r   r   r   r   r   r'   rJ   )©r   r   r!   r   r   rÔ   rb   )©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Ë   Úq1rÌ   Úq2s	            r/   Útest_critical_pairrØ   †  sm  € å�i¥¥UÑ+Ô+�J€A€qˆˆ1ˆQà
˜Q˜q™S  A¡™X¨¨1©¨Q°©T©	Ñ1°A°q±DÑ8¸1Ñ<¸aÐ	@€BØ
˜a ™d˜U Q q¡S™[¨1¨Q©3Ñ.°°A±Ñ5°qÐ	9€Bà
˜Q ™T ! Q¡$™Y¨¨A©¨a°©d©Ñ2°QÑ6¸Ñ:¸AÐ	>€BØ
˜Q˜q™S 1 Q¨¡T¡6™\¨A¨a©CÑ/°!°Q±$Ñ6¸Ð	;€Bå˜˜R Ñ#Ô#Ø˜L­"¨R°©)¬)Ð4Ð7HÈ1ÈaÉ4È%ÐRSÐTUÑRUÉ+ÐXYÐZ[ÑX[ÑJ[Ð^_ÐabÑ^bÑJbÐdeÐ6fØ˜L­"¨Q°©(¬(Ð3Ð6GÈÈ1ÉÈQÐPQÉTÉÐTUÐWXÑTXÐYZÐ\]ÑY]ÑT]ÑI]Ð`aÐcdÑ`dÑIdÐghÑIhÐjkÐ5lð(ò ð ð ð õ ˜˜R Ñ#Ô#Ø˜L­"¨Q°©(¬(Ð3Ð6GÈÈ1ÉÈqÐQRÐTUÑQUÉvÉÐXYÐZ[ÑX[ÑI[Ð^_ÐabÑ^bÑIbÐdfÐ5gØ˜L­"¨Q°©(¬(Ð3Ð6GÈÈAÉÈaÐQRÉdÉÐUVÐXYÑUYÐZ[Ð]^ÑZ^ÑU^ÑI^ÐabÑIbÐefÑIfÐhiÐ5jð(ò ð ð ð ð ð r1   c                  óV  — t          dt          t          ¦  «        \  } }}}}d||z  |dz  z  |dz  |dz  z  z   |dz  z
  dz
  df}d|dz   ||z  z
  ||z  z
  |dz  z
  df}d|dz  |dz  z  |dz  |dz  z  z   |z
  |z
  d	f}d
||z  ||d	z  z  z   ||z  z   |dz  z   df}t          ||| ¦  «        }	t          ||| ¦  «        }
t	          |	| ¦  «        t	          |
| ¦  «        k     sJ ‚t          ||| ¦  «        }	t          ||| ¦  «        }
t	          |	| ¦  «        t	          |
| ¦  «        k     sJ ‚d S )NrÈ   rÐ   r   r#   r!   rÑ   rÒ   r    r&   rÓ   r'   rJ   )r   r   r   r   r	   )r)   r*   r+   r.   r®   rË   rÖ   rÌ   r×   Úcp1Úcp2s              r/   Útest_cp_keyrÜ   ™  sm  € å�i¥¥UÑ+Ô+�J€A€qˆˆ1ˆQà
˜Q˜q™S  A¡™X¨¨1©¨Q°©T©	Ñ1°A°q±DÑ8¸1Ñ<¸aÐ	@€BØ
˜a ™d˜U Q q¡S™[¨1¨Q©3Ñ.°°A±Ñ5°qÐ	9€Bà
˜Q ™T ! Q¡$™Y¨¨A©¨a°©d©Ñ2°QÑ6¸Ñ:¸AÐ	>€BØ
˜Q˜q™S 1 Q¨¡T¡6™\¨A¨a©CÑ/°!°Q±$Ñ6¸Ð	;€Bå
˜˜B Ñ
"Ô
"€CÝ
˜˜B Ñ
"Ô
"€Cå�#�q‰>Œ>�F 3¨™NœNÒ*Ð*Ð*Ð*å
˜˜B Ñ
"Ô
"€CÝ
˜˜B Ñ
"Ô
"€Cå�#�q‰>Œ>�F 3¨™NœNÒ*Ð*Ð*Ð*Ð*Ð*r1   c                  ó¶  — t          dt          t          ¦  «        \  } }}}}t          t	          dd¦  «        | j        d¦  «        }t          t	          dd¦  «        t          dd¦  «        |dz  z  t          dd¦  «        |z  |z  z   t          dd¦  «        |z  |z  z   |dz  |z  z   t          d	d¦  «        |dz  z  z   t          d
d¦  «        |z  |dz  z  z   t          dd¦  «        |z  |z  z
  t          dd¦  «        |dz  z  z   t          dd¦  «        |dz  z  z
  d¦  «        g}t          t          |¦  «        t          |¦  «        |¦  «        du sJ ‚t          t	          dd¦  «        | j        d¦  «        }t          t	          dd¦  «        t          dd¦  «        |z  |z  t          d	d¦  «        |z  |z  z   t          dd¦  «        |z  z
  d	|dz  z  z   t          dd¦  «        |z  |z  z   t          d	d¦  «        |z  z
  d	|dz  z  z   t          d	d¦  «        |z  z
  d¦  «        g}t          t          |¦  «        t          |¦  «        |¦  «        du sJ ‚d S )NrÈ   )r   r   r   r!   r   )r   r   r   r!   é-   r!   r&   rš   r#   éL   é#   r–   éi   rJ   r$   r    r�   r'   T)r   r!   r!   r   rÉ   rU   é   )	r   r   r   r   r   rÊ   r
   r   r   )r)   r*   r+   r.   r®   ÚpÚBs          r/   Ú test_is_rewritable_or_comparablerå   ®  s  € å�i¥¥UÑ+Ô+�J€A€qˆˆ1ˆQå�C�˜aÑ Ô  !¤&¨!Ñ,Ô,€AÝ	�S�˜qÑ!Ô!¥2 a¨¡8¤8¨A¨q©D¡=µ2°a¸±7´7¸1±9¸Q±;Ñ#>ÅÀAÀbÁÄÈ!ÁÈAÁÑ#MÐPQÐSTÑPTÐUVÑPVÑ#VÕY[Ð\]Ð^`ÑYaÔYaÐbcÐefÑbfÑYfÑ#fÕikÐlnÐoqÑirÔirÐstÑitÐuvÐxyÑuyÑiyÑ#yÕ|~ð  @Bð  CFñ  }Gô  }Gð  HIñ  }Ið  JKñ  }Kñ  $Kõ  NPð  QSð  TUñ  NVô  NVð  WXð  Z[ñ  W[ñ  N[ñ  $[õ  ^`ð  acð  dfñ  ^gô  ^gð  hið  klñ  hlñ  ^lñ  $lð  noñ  
pô  
pð  	q€Aõ '¥t¨A¡w¤wµ°A±´¸Ñ:Ô:¸dÐBÐBÐBÐBå�C�˜aÑ Ô  !¤&¨!Ñ,Ô,€AÝ	�S�˜qÑ!Ô!¥2 b¨¡8¤8¨A¡:¨a¡<µ"°Q°q±'´'¸!±)¸A±+Ñ#=ÅÀ1ÀQÁÄÈÁ	Ñ#IÈAÈaÐQRÉdÉFÑ#RÕUWÐXZÐ[\ÑU]ÔU]Ð^_ÑU_Ð`aÑUaÑ#aÕdfÐghÐijÑdkÔdkÐlmÑdmÑ#mÐpqÐrsÐuvÑrvÑpvÑ#vÕy{Ð|}Ð~ñ  zAô  zAð  BCñ  zCñ  $Cð  EFñ  
Gô  
Gð  	H€Aõ '¥t¨A¡w¤wµ°A±´¸Ñ:Ô:¸dÐBÐBÐBÐBÐBÐBr1   c            
      ó¬  — t          dt          t          ¦  «        \  } }}}d|d|z  z   d|z  z   dz
  dfdd|dz  z  d|z  |z  z   d|z  z
  d|dz  z  z   d|z  z
  dfdt          d	d
¦  «        |z  |z  t          dd
¦  «        |z  z
  d|dz  z  z   t          dd
¦  «        |z  z
  d
fd|d|d
z  z  z   t          dd¦  «        |dz  z  z
  t          d
d¦  «        |z  z   dfd|dz  t          d	d¦  «        |d
z  z  z
  t          dd¦  «        |dz  z  z   t          dd¦  «        |z  z   dfg}t          |d         |d         | ¦  «        }t	          |¦  «        }t          ||¦  «        d| j        dfk    sJ ‚t          t          t          |¦  «        d         d¦  «        t          |¦  «        t          |¦  «        ¦  «        }t          ||¦  «        |k    sJ ‚d S )Nr"   )rÂ   r!   r   r!   )rÂ   r   r'   r%   )rÂ   r    rU   r    r#   ))r   r   r!   r   é   rw   r$   ))r   r   r   r   r�   rz   r&   r   ))r   r   r   r!   éd   )r   r   r   r   r   r   rÊ   r   r   r   r   r   )r)   r*   r+   r.   rK   ÚcpÚss          r/   Útest_f5_reducerë   ¿  så  € å�G�R¥Ñ%Ô%�H€A€qˆˆ1à
˜!˜a ™c™' A a¡C™-¨!Ñ+¨QÐ	/Ø
˜!˜A˜q™D™& 1 Q¡3 q¡5™.¨1¨Q©3Ñ.°°1°a±4±Ñ7¸!¸A¹#Ñ=¸qÐ	AØ
�"˜R ™(œ( 1™* Q™,­¨A¨a©¬°©Ñ2°Q°q¸!±t±VÑ;½bÀÀ1¹g¼gÀa¹iÑGÈÐ	KØ
˜!˜b  A¡™g™+­¨2¨a©¬°°A±©Ñ5½¸1¸Q¹¼À¹	ÑAÀ1Ð	EØ
˜!˜Q™$¥ B r¡¤¨1¨a©4¡Ñ/µ"°Q°r±(´(¸1¸a¹4±-Ñ?Å"ÀQÀrÁ(Ä(È1Á*ÑLÈaÐ	Pð		R€Aõ 
�q˜”t˜Q˜qœT 1Ñ	%Ô	%€BÝˆr‰
Œ
€Aå�Q˜‰?Œ?˜~¨q¬v°qÐ9Ò9Ð9Ð9Ð9å�C•�Q‘”˜”
˜CÑ Ô ¥%¨¡(¤(­C°©F¬FÑ3Ô3€AÝ�Q˜‰?Œ?˜aÒÐÐÐÐÐr1   c                  óœ  — t          dt          t          ¦  «        \  } }}g d¢}|dz  |z
  d|z  z
  dz   d|z  |dz  z   |z   dz
  g}t          ||| ¦  «        t          dd¦  «        t          dd¦  «        t          dd¦  «         t          dd¦  «        gt          dd¦  «        t          dd¦  «        t          dd¦  «        t          dd¦  «         gt          dd¦  «        t          dd¦  «        t          dd¦  «        t          d	d¦  «        gt          dd¦  «        t          dd¦  «        t          dd¦  «        t          dd¦  «        ggt          dd¦  «        t          dd¦  «        t          dd¦  «        t          dd¦  «         gt          dd¦  «        t          dd¦  «         t          dd¦  «        t          d	d¦  «        gt          dd¦  «        t          dd¦  «        t          dd¦  «        t          dd¦  «        gt          dd¦  «        t          dd¦  «        t          dd¦  «        t          dd¦  «         gggk    sJ ‚d S )
Nr   ))r   r   )r   r!   )r!   r   )r!   r!   r   r    r!   éþÿÿÿr   r#   r'   )r   r   r   r   )r)   r*   r+   ÚbasisrK   s        r/   Útest_representing_matricesrï   Ò  s   € Ý�%��UÑ#Ô#�F€A€qˆà,Ð,Ð,€EØ	
ˆA‰�‰�A�a‘C‰˜!Ñ	˜R ™T A q¡D™[¨1™_¨qÑ0Ð1€Aå! %¨¨AÑ.Ô.Ý
ˆQ�‰(Œ(•B�q˜!‘H”H�b  A™hœh˜Y­¨1¨a©¬Ð	1Ý
ˆQ�‰(Œ(•B�q˜!‘H”H�b  A™hœh­¨1¨a©¬ yÐ	1Ý
ˆQ�‰(Œ(•B�q˜!‘H”H�b  A™hœh­¨1¨a©¬Ð	1Ý
ˆQ�‰(Œ(•B�q˜!‘H”H�b  A™hœh­¨1¨a©¬Ð	1ð	3õ ˆQ�‰(Œ(•B�q˜!‘H”H�b  A™hœh­¨1¨a©¬ yÐ	1Ý
ˆQ�‰(Œ(•B�q˜!‘H”H�9�b  A™hœh­¨1¨a©¬Ð	1Ý
ˆQ�‰(Œ(•B�q˜!‘H”H�b  A™hœh­¨1¨a©¬Ð	1Ý
ˆQ�‰(Œ(•B�q˜!‘H”H�b  A™hœh­¨1¨a©¬ yÐ	1ð	3ð34ò 4ð 4ð 4ð 4ð 4ð 4r1   c                  ó4  — t          dt          ¦  «        \  } }}}t          |dz  |dz  z
  ||z
  ¦  «        |dz  |dz  z
  k    sJ ‚t          d|dz  z  d|dz  z  z
  d|z  d|z  z
  ¦  «        d|dz  z  d|dz  z  z
  k    sJ ‚t          dt          ¦  «        \  } }}}t          |dz  |dz  z
  ||z
  ¦  «        |dz  |dz  z
  k    sJ ‚t          d|dz  z  d|dz  z  z
  d|z  d|z  z
  ¦  «        d|dz  z  d|dz  z  z
  k    sJ ‚t          dt          ¦  «        \  } }}t          |dz  |z  ||dz  z  ¦  «        |dz  |dz  z  k    sJ ‚d|z  |dz  z  d|z  |dz  z  z
  d|z  |dz  z  z
  d|z  |dz  z  z   }|dz  d|dz  z  z
  |z   }d|z  |dz  z  d|z  |dz  z  z
  d|z  |dz  z  z
  d|z  |dz  z  z   d|z  |dz  z  z   d|z  |dz  z  z
  }t          ||¦  «        |k    sJ ‚|dz  d|dz  z  |z  z
  d	|z  |dz  z  z
  d|dz  z  z
  }|dz  d|dz  z  |z  z   d
|dz  z  |dz  z  z   d|z  |dz  z  z   d|dz  z  z   }|dz  |dz  |z  z   d|dz  z  |dz  z  z
  d|dz  z  |dz  z  z
  d|z  |dz  z  z
  d|dz  z  z
  }t          ||¦  «        |k    sJ ‚d S )Nr"   r   r   r&   r    r#   r$   r'   rW   rT   rU   r’   é2   é/   rŒ   )r   r   r   r   )r)   r*   r+   r.   r,   r-   Úhs          r/   Útest_groebner_lcmrô   â  sf  € Ý�G�RÑ Ô �H€A€qˆˆ1å˜˜1™˜q !™t™ Q¨¡UÑ+Ô+¨q°!©t°a¸±d©{Ò:Ð:Ð:Ð:Ý˜˜!˜Q™$™  1 a¡4¡™¨¨1©¨q°©s©Ñ3Ô3°q¸¸A¹±vÀÀ!ÀQÁ$Á±ÒFÐFÐFÐFå�G�RÑ Ô �H€A€qˆˆ1å˜˜1™˜q !™t™ Q¨¡UÑ+Ô+¨q°!©t°a¸±d©{Ò:Ð:Ð:Ð:Ý˜˜!˜Q™$™  1 a¡4¡™¨¨1©¨q°©s©Ñ3Ô3°q¸¸A¹±vÀÀ!ÀQÁ$Á±ÒFÐFÐFÐFå�%�‰_Œ_�F€A€qˆå˜˜1™˜Q™  ! Q¡$¡Ñ'Ô'¨1¨a©4°°1±©9Ò4Ð4Ð4Ð4à	ˆ!‰ˆAˆq‰D‰�1�Q‘3�q˜!‘t‘8Ñ˜a ™c ! Q¡$™hÑ&¨¨1©¨Q°©T©Ñ1€AØ	ˆ1‰ˆq��A‘‰v‰˜Ñ€AØ	ˆ!‰ˆAˆq‰D‰�1�Q‘3�q˜!‘t‘8Ñ˜a ™c ! Q¡$™hÑ&¨¨1©¨Q°©T©Ñ1°A°a±C¸¸1¹±HÑ<¸qÀ¹sÀ1ÀaÁ4¹xÑG€Aå˜˜1ÑÔ Ò"Ð"Ð"Ð"à	ˆ1‰ˆq��A‘‰v�a‰x‰˜!˜A™#˜a ™d™(Ñ" Q q¨!¡t¡VÑ+€AØ	ˆ1‰ˆq��A‘‰v�a‰x‰˜"˜Q ™T™' ! Q¡$™,Ñ&¨¨A©¨a°©d©Ñ2°Q°q¸!±t±VÑ;€AØ	ˆ1‰ˆq�!‰t�A‰v‰˜˜1˜a™4™  1¡™Ñ$ r¨!¨Q©$¡w¨q°!©t¡|Ñ3°b¸±d¸1¸a¹4±iÑ?À"ÀQÈÁTÁ'ÑI€Aå˜˜1ÑÔ Ò"Ð"Ð"Ð"Ð"Ð"r1   c                  óÒ  — t          dt          ¦  «        \  } }}}t          |dz  |dz  z
  ||z
  ¦  «        ||z
  k    sJ ‚t          d|dz  z  d|dz  z  z
  d|z  d|z  z
  ¦  «        d|z  d|z  z
  k    sJ ‚t          dt          ¦  «        \  } }}}t          |dz  |dz  z
  ||z
  ¦  «        ||z
  k    sJ ‚t          d|dz  z  d|dz  z  z
  d|z  d|z  z
  ¦  «        ||z
  k    sJ ‚d S )Nr"   r   )r   r   r   r   )r)   r*   r+   r.   s       r/   Útest_groebner_gcdrö   ý  s  € Ý�G�RÑ Ô �H€A€qˆˆ1å˜˜1™˜q !™t™ Q¨¡UÑ+Ô+¨q°1©uÒ4Ð4Ð4Ð4Ý˜˜!˜Q™$™  1 a¡4¡™¨¨1©¨q°©s©Ñ3Ô3°q¸±s¸Q¸q¹S±yÒ@Ð@Ð@Ð@å�G�RÑ Ô �H€A€qˆˆ1å˜˜1™˜q !™t™ Q¨¡UÑ+Ô+¨q°1©uÒ4Ð4Ð4Ð4Ý˜˜!˜Q™$™  1 a¡4¡™¨¨1©¨q°©s©Ñ3Ô3°q¸1±uÒ<Ð<Ð<Ð<Ð<Ð<r1   c                  ó   — t          dt          t          ¦  «        \  } }}|dz  ||z  t          dd¦  «         |z  |dz  z   g}|dz  ||z  t          dd¦  «         |z  |dz  z   g}t          || ¦  «        du sJ ‚t          || ¦  «        du sJ ‚d S )Nr   r   r!   r    TF)r   r   r   r   )r)   r*   r+   Úvalid_groebnerÚinvalid_groebners        r/   Útest_is_groebnerrú     s­   € Ý�%��UÑ#Ô#�F€A€qˆØ˜‘d˜A˜a™C¥" Q q¡'¤' ¨!¡¨a°©dÑ!2Ð3€NØ˜1™˜a ™c¥B q¨¡G¤G 8¨A¡:°°1±Ñ#4Ð5ÐÝ�~ qÑ)Ô)¨TÐ1Ð1Ð1Ð1ÝÐ'¨Ñ+Ô+¨uÐ4Ð4Ð4Ð4Ð4Ð4r1   c                  ó  — t          dt          t          ¦  «        \  } }}|dz  d|z  |dz  z  z   }||z  d|dz  z  z   dz
  }t          ||g| ¦  «        dk    sJ ‚t	          ||g| ¦  «        }t          || ¦  «        dk    sJ ‚d S )Nr   r   r    r!   FT)r   r   r   r   r   )r)   r*   r+   r,   r-   rL   s         r/   Útest_is_reducedrü     sŸ   € Ý�5�"�cÑ"Ô"�G€A€qˆ!Ø	ˆ1‰ˆq�‰s�1�a‘4‰x‰€AØ	ˆ!‰ˆa��1‘‰f‰�qÑ€AÝ�q˜!�f˜aÑ Ô  UÒ*Ð*Ð*Ð*Ý�!�Q�˜ÑÔ€AÝ�a˜ÑÔ˜tÒ#Ð#Ð#Ð#Ð#Ð#r1   N)AÚ__doc__Úsympy.polys.groebnertoolsr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Úsympy.polys.fglmtoolsr   Úsympy.polys.orderingsr   r   Úsympy.polys.ringsr   r   Úsympy.polys.domainsr   r   Úsympy.testing.pytestr   Úsympy.polysr   r7   r0   r:   r?   rM   rP   rR   rt   r‚   r…   rˆ   r    r£   r¥   r¯   r²   r´   r»   r¾   rÀ   rÆ   rÎ   rØ   rÜ   rå   rë   rï   rô   rö   rú   rü   r9   r1   r/   ú<module>r     s-  ðØ  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 9Ð 8Ð 8Ð 8Ð 8Ð 8Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à %Ð %Ð %Ð %Ð %Ð %Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðhð hð hðTð ð ðð ð ðð ð ð%ð %ð %ð%ð %ð %ð
!ð !ð !ðDð ð ð,'ð 'ð 'ð'ð 'ð 'ðð ð ð:'ð 'ð 'ð'ð 'ð 'ðBð Bð BðJ ð(ð (ñ „ð(ð(ð (ð (ðð ð ð:&ð &ð &ð&ð &ð &ð/ð /ð /ð%ð %ð %ðð ð ð&+ð +ð +ð*Cð Cð Cð" ð  ð  ð&4ð 4ð 4ð #ð #ð #ð6	=ð 	=ð 	=ð5ð 5ð 5ð$ð $ð $ð $ð $r1   