Ë
    çÿæiÿ„  ã                   óˆ-  — d Z ddlmZ ddl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i Zd„ Zg d¢Ze
eedd ej0                  d«      gej2                  dddg	eeedd ej0                  d«      gej2                  dddg	eeedd ej0                  d«      gej2                  dddg	edddd ej0                  d«      gddddg	edddd ej0                  d«      gddddg	edddd ej0                  d«      gej2                   dddg	gZeD � cg c]  }  e ee| «      «      ‘Œ c} 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,„ Z+d-„ Z,d.„ Z-d/„ Z.d0„ Z/d1„ Z0d2„ Z1d3„ Z2d4„ Z3d5„ Z4d6„ Z5d7„ Z6d8„ Z7d9„ Z8d:„ Z9d;„ Z:d<„ Z;d=„ Z<d>„ Z=d?„ Z>d@„ Z?dA„ Z@dB„ ZA ej„                   ej†                  eD«      jŠ                  «      ZFdC„ ZGdD„ ZHdE„ ZIdF„ ZJdG„ ZKdH„ ZLdI„ ZMdJ„ ZNdK„ ZOg d¢ZPg eee dej¢                  dLz  ej¢                  gej2                  ddMdNg	‘e!e"e#ddOdPgej2                  dLdQdRg	‘e!e"e#ddSdTgej2                  dUdVdWg	‘e!e"e#ddXdYgej2                  dZd[d\g	‘e!e"e#dd]d^gej2                  d_d`dag	‘e!e"e#ddbdcgej2                  dddedfg	‘e!e"e#ddgdhgej2                  didjdkg	‘e!e"e#ddldmgej2                  dndodpg	‘e!e"e#ddqdrgej2                  dsdtdug	‘e!e"e#ddvdwgej2                  dxdydzg	‘e!e"e#dd{d|gej2                  d}d~dg	‘e$e%e&d€d�d‚gej2                  dƒdd„g	‘e$e%e&d…d�d‚gej2                  dƒdd†g	‘e$e%e&d‡d�d‚gej2                  dƒddˆg	‘e'e(e)d‰ddUgej2                  dŠd‹dŒg	‘e'e(e)d�ddUgej2                  dŠdŽd�g	‘e'e(e)d�ddUgej2                  dŠd‘d’g	‘e'e(e)d“ddUgej2                  dŠd”d•g	‘e'e(e)d–ddUgej2                  dŠd—d˜g	‘e'e(e)d™ddUgej2                  dŠdšd›g	‘e'e(e)dœddUgej2                  dŠdšd�g	‘e'e(e)džddUgej2                  dŠdšdŸg	‘e'e(e)d ddUgej2                  dŠdšd¡g	‘e'e(e)d¢ddUgej2                  dŠdšd£g	‘e'e(e)džd¤d¥gej2                  d¦dšd§g	‘e'e(e)d d¤d¥gej2                  d¦dšd¨g	‘e'e(e)d¢d¤d¥gej2                  d¦dšd©g	‘e'e(e)dªd¤d¥gej2                  d¦dšd«g	‘e*e+e,ddd¦gej2                  d¬ej¢                  d­z  d®g	‘e-e.e/d¯ddšgej2                  dd°d±g	‘e-e.e/d²ddšgej2                  dd³d´g	‘e-e.e/dµddšgej2                  dd¶d·g	‘e-e.e/d¸ddšgej2                  dd¹dºg	‘e-e.e/d»ddšgej2                  d¼d½d¾g	‘e-e.e/d¿ddšgej2                  dÀdÁdÂg	‘e-e.e/dÃddšgej2                  dÄdÅdÆg	‘e-e.e/dÇddšgej2                  dÈdÉdÊg	‘e-e.e/dËddšgej2                  dÌdÍdÎg	‘e-e.e/dÏddšgej2                  dÐdÑdÒg	‘e0e1e2d»ddšgej2                  d¼dÓdÔg	‘e0e1e2dÕddšgej2                  d¼dÖd×g	‘e0e1e2d¿ddšgej2                  d¼dØdÙg	‘e3e4e5d²ddšgej2                  dÚddÛg	‘e3e4e5d»ddšgej2                  dÚdÜdÝg	‘e3e4e5dÕddšgej2                  dÚdÞdßg	‘e3e4e5dàddšgej2                  dÚdádâg	‘e3e4e5d¿ddšgej2                  dÚdãdäg	‘e6e7e8d¯ddšgej2                  ddådæg	‘e6e7e8d²ddšgej2                  ddçdèg	‘e6e7e8d¸ddšgej2                  ddédêg	‘e6e7e8d»ddšgej2                  ddëdìg	‘e6e7e8díddšgej2                  ddîdïg	‘e6e7e8dàddšgej2                  ddðdñg	‘e6e7e8d¿ddšgej2                  ddòdóg	‘e9e:e;d¯ddšgej2                  dÚdôdõg	‘e9e:e;d»ddšgej2                  dÚdöd÷g	‘e9e:e;dÕddšgej2                  dÚdødùg	‘e9e:e;dàddšgej2                  dÚdúdûg	‘e9e:e;d¿ddšgej2                  dÚdüdýg	‘e<e=e>d²dþdšgej2                  dþddÿg	‘e<e=e>d»dþdšgej2                  dþ�d �dg	‘e<e=e>dàdþdšgej2                  dþ�d�dg	‘e<e=e>d¿dþdšgej2                  dþdÄ�dg	‘e?e@eAd²dš�dgej2                  �ddL�dg	‘e?e@eAdµdš�dgej2                  �dd�dg	‘e?e@eAd¸dš�dgej2                  �d�d	�d
g	‘e?e@eAd»dš�dgej2                  �ddU�dg	‘e?e@eA�ddš�dgej2                  �dd­�dg	‘e?e@eA�ddš�dgej2                  �d�d�dg	‘e?e@eA�ddš�dgej2                  �d�d�dg	‘e?e@eA�ddš�dgej2                  �d�d�dg	‘e?e@eA�ddš�dgej2                  �d�d�dg	‘e?e@eAdàdš�dgej2                  �d�d�dg	‘e?e@eA�ddš�dgej2                  �dd_�dg	‘e?e@eA�ddš�dgej2                  �d�d�d g	‘e?e@eA�d!dš�dgej2                  �d�d"�d#g	‘e?e@eA�d$dš�dgej2                  �d�d%�d&g	‘e?e@eA�d'dš�dgej2                  �d�d(�d)g	‘e?e@eA�d*dš�dgej2                  �d�d+�d,g	‘e?e@eA�d-dš�dgej2                  �d�d.�d/g	‘e?e@eA�d0dš�dgej2                  �dd‚�d1g	‘e?e@eA�d2dš�dgej2                  �d�d3�d4g	‘eGeHeIdd�d	gej2                  d¦d�d5g	‘eJeKeLd¯�d6ej¢                  dLz  gddš�d7�d8g	‘eJeKeLd²�d6ej¢                  dLz  gddš�d7�d9g	‘eJeKeLdµ�d6ej¢                  dLz  gddš�d7�d:g	‘eJeKeLd¸�d6ej¢                  dLz  gddš�d7�d;g	‘eJeKeLd»�d6ej¢                  dLz  gddš�d7�d<g	‘eJeKeL�d�d6ej¢                  dLz  gddš�d7�d=g	‘eJeKeL�d�d6ej¢                  dLz  gddš�d7�d>g	‘eJeKeLdí�d6ej¢                  dLz  gddš�d7�d?g	‘eJeKeL�d�d6ej¢                  dLz  gddš�d7�d@g	‘eJeKeLdÕ�d6ej¢                  dLz  gddš�d7�dAg	‘eJeKeL�d�d6ej¢                  dLz  gddš�d7�dBg	‘eJeKeL�dC�d6ej¢                  dLz  gddš�d7�dDg	‘eJeKeL�d�d6ej¢                  dLz  gddš�d7�dEg	‘eJeKeL�dF�d6ej¢                  dLz  gddš�d7�dGg	‘eJeKeLdà�d6ej¢                  dLz  gddš�d7�dHg	‘eJeKeL�dI�d6ej¢                  dLz  gddš�d7�dJg	‘eJeKeL�d�d6ej¢                  dLz  gddš�d7�dKg	‘eJeKeL�dL�d6ej¢                  dLz  gddš�d7�dMg	‘eJeKeL�d�d6ej¢                  dLz  gddš�d7�dNg	‘eJeKeLd¿�d6ej¢                  dLz  gddš�d7�dOg	‘eJeKeL�d!�d6ej¢                  dLz  gddš�d7�dPg	‘eJeKeL�dQ�d6ej¢                  dLz  gddš�d7�dRg	‘eJeKeL�d$�d6ej¢                  dLz  gddš�d7�dSg	‘eJeKeL�dT�d6ej¢                  dLz  gddš�d7�dUg	‘eJeKeL�d'�d6ej¢                  dLz  gddš�d7�dVg	‘eJeKeL�dW�d6ej¢                  dLz  gddš�d7�dXg	‘eJeKeL�d*�d6ej¢                  dLz  gddš�d7�dYg	‘eJeKeL�dZ�d6ej¢                  dLz  gddš�d7�d[g	‘eJeKeL�d-�d6ej¢                  dLz  gddš�d7�d\g	‘eJeKeL�d]�d6ej¢                  dLz  gddš�d7�d^g	‘eJeKeL�d0�d6ej¢                  dLz  gddš�d7�d_g	‘eJeKeL�d`�d6ej¢                  dLz  gddš�d7�dag	‘eJeKeL�d2�d6ej¢                  dLz  gddš�d7�dbg	‘eJeKeL�dc�d6ej¢                  dLz  gddš�d7�ddg	‘eJeKeL�de�d6ej¢                  dLz  gddš�d7�dfg	‘eJeKeL�dg�d6ej¢                  dLz  gddš�d7�dhg	‘eJeKeL�di�d6ej¢                  dLz  gddš�d7�djg	‘eJeKeL�dk�d6ej¢                  dLz  gddš�d7�dlg	‘eJeKeL�dm�d6ej¢                  dLz  gddš�d7�dng	‘eJeKeLdÃ�d6ej¢                  dLz  gddš�d7�dog	‘eMeNeOd¿�d6�dpgddƒ�dq�drg	‘eMeNeO�d!�d6�dpgddƒ�ds�dtg	‘eMeNeO�dQ�d6�dpgddƒ�du�dvg	‘eMeNeO�d$�d6�dpgddƒ�dw�dxg	‘eMeNeO�dT�d6�dpgddƒ�dy�dzg	‘eMeNeO�d'�d6�dpgddƒ�d{�d|g	‘eMeNeO�dW�d6�dpgddƒ�d}�d~g	‘eMeNeO�d*�d6�dpgddƒ�d�d€g	‘eMeNeO�dZ�d6�dpgddƒ�d��d‚g	‘eMeNeO�d-�d6�dpgddƒ�dƒ�d„g	‘eMeNeO�d]�d6�dpgddƒ�d…�d†g	‘eMeNeO�d0�d6�dpgddƒ�d‡�dˆg	‘eMeNeO�d`�d6�dpgddƒ�d‰�dŠg	‘eMeNeO�d2�d6�dpgddƒ�d‹�dŒg	‘eMeNeO�dc�d6�dpgddƒ�d��dŽg	‘eMeNeO�de�d6�dpgddƒ�d��d�g	‘eMeNeO�dg�d6�dpgddƒ�d‘�d’g	‘eMeNeO�di�d6�dpgddƒ�d“�d”g	‘eMeNeO�dk�d6�dpgddƒ�d•�d–g	‘eMeNeO�dm�d6�dpgddƒ�d—�d˜g	‘eMeNeOdÃ�d6�dpgddƒ�d™�dšg	‘eMeNeOdÏ�d6�dpgddƒ�d›�dœg	‘eMeNeO�d��d6�dpgddƒ�dž�dŸg	‘eMeNeO�d �d6�dpgddƒ�d¡�d¢g	‘eMeNeO�d£�d6�dpgddƒ�d¤�d¥g	‘eMeNeO�d¦�d6�dpgddƒ�d§�d¨g	‘eMeNeO�d©�d6�dpgddƒ�dª�d«g	‘eMeNeO�d¬�d6�dpgddƒ�d­�d®g	‘eMeNeO�d¯�d6�dpgddƒ�d°�d±g	‘eMeNeO�d²�d6�dpgddƒ�d³�d´g	‘eMeNeO�dµ�d6�dpgddƒ�d¶�d·g	‘ZReRD � cg c]  }  e eeP| «      «      ‘Œ c} ZS�d¸„ ZT�d¹„ ZU�dº„ ZV�d»„ ZW�d¼„ ZX�d½„ ZYg �d¾¢ZZeTeUeV�d¿ej2                  �dÀ�dÁ�dÂ�dÃg	eTeUeV�dÄej2                  �dÅ�dÆ�dÇ ej0                  d«      dLz  �dÂz  z   �dÈg	eTeUeV�dÉej2                  �dÂ�dÁd ej0                  d«      dLz  �dÂz  z   �dÊg	eTeUeV�dËej2                  dU�d	dL�dÌg	eWeXeY�dÍej2                  �dÎ�dÁej¢                  �dÂz  �dÏg	eWeXeY�dÐej2                  �dÎ�dÁej¢                  �dÑz  �dÒg	gZ[e[D � cg c]  }  e eeZ| «      «      ‘Œ c} Z\�dÓ„ Z] e]e«        e]eS«        e]e\«       �d
�dÔ„Z^ej¾                  ejÀ                  ejÂ                  ejÄ                  gZcg �dÕ¢ZdeeeeegZeg �dÖ¢Zf�d×„ Zg�dØeg_h        �dÙ„ Zidšei_h        �dÚ„ Zjdej_h        �dÛ„ ZkdLek_h        �dÜ„ Zldel_h        �dÝ„ Zmdem_h        �dÞ„ Znden_h        �dß„ Zo�dàeo_h        �dá„ Zp�dâep_h        g �dã¢Zqg egdLdgegjÐ                  �dg‘egdšdZgegjÐ                  �dg‘egdš�dgegjÐ                  �däg‘eg�då�dægegjÐ                  �d%g‘eg�dç�dègegjÐ                  �dég‘eid�dêgeijÐ                  �dëg‘ei�dp�dægeijÐ                  �dìg‘ei�dí�dîgeijÐ                  �dïg‘ei�dð�dègeijÐ                  �dñg‘ei�dò�dógeijÐ                  �dôg‘ejddUgejjÐ                  �d"g‘ej�dõdZgejjÐ                  �d%g‘ej�då�dægejjÐ                  �dög‘ej�d÷�dîgejjÐ                  �døg‘ej�dç�dègejjÐ                  �dùg‘ekddUgekjÐ                  �d"g‘ek�dõdZgekjÐ                  �d%g‘ek�då�dægekjÐ                  �d3g‘ek�d÷�dîgekjÐ                  �dég‘ek�dç�dègekjÐ                  �dúg‘eld�d	geljÐ                  �d"g‘eldƒdUgeljÐ                  �dìg‘elddZgeljÐ                  �d%g‘el�dûdngeljÐ                  �d(g‘el�dõ�dgeljÐ                  ddg‘em�dü�dýgemjÐ                  �d"g‘em�dþ�dÿgemjÐ                  �dìg‘em�dü�d gemjÐ                  �d%g‘em�d�dgemjÐ                  �d(g‘em�d�dgemjÐ                  ddg‘end�d	genjÐ                  �dëg‘endƒdUgenjÐ                  �dëg‘enddZgenjÐ                  �dg‘en�dûdngenjÐ                  �dg‘en�dõ�dgenjÐ                  �dg‘eo�ddLgeojÐ                  �dg‘eo�ddgeojÐ                  dZg‘eo�d�dgeojÐ                  �dg‘eo�d�d+geojÐ                  �dg‘eo�d�dgeojÐ                  �däg‘ep�ddšgepjÐ                  �dg‘ep�ddgepjÐ                  �dëg‘ep�d�dgepjÐ                  dZg‘ep�d�d+gepjÐ                  �dg‘ep�d�dgepjÐ                  �dg‘Zr eser«      D ��cg c]$  \  }}||d   jè                  › �d	|dUz  dšz   › �gz   ‘Œ& c}}ZrerD � cg c]  }  e eeq| «      «      ‘Œ c} Zu e]eu«       yc c} w c c} w c c} w c c}}w c c} w (  a
  
Parameters used in test and benchmark methods.

Collections of test cases suitable for testing 1-D root-finders
  'original': The original benchmarking functions.
     Real-valued functions of real-valued inputs on an interval
     with a zero.
     f1, .., f3 are continuous and infinitely differentiable
     f4 has a left- and right- discontinuity at the root
     f5 has a root at 1 replacing a 1st order pole
     f6 is randomly positive on one side of the root,
     randomly negative on the other.
     f4 - f6 are not continuous at the root.

  'aps': The test problems in the 1995 paper
     TOMS "Algorithm 748: Enclosing Zeros of Continuous Functions"
     by Alefeld, Potra and Shi. Real-valued functions of
     real-valued inputs on an interval with a zero.
     Suitable for methods which start with an enclosing interval, and
     derivatives up to 2nd order.

  'complex': Some complex-valued functions of complex-valued inputs.
     No enclosing bracket is provided.
     Suitable for methods which use one or more starting values, and
     derivatives up to 2nd order.

  The test cases are provided as a list of dictionaries. The dictionary
  keys will be a subset of:
  ["f", "fprime", "fprime2", "args", "bracket", "smoothness",
  "a", "b", "x0", "x1", "root", "ID"]
é    )ÚrandomN)Ú	_zeros_py)Úarray_namespacea  
f2 is a symmetric parabola, x**2 - 1
f3 is a quartic polynomial with large hump in interval
f4 is step function with a discontinuity at 1
f5 is a hyperbola with vertical asymptote at 1
f6 has random values positive to left of 1, negative to right

Of course, these are not real problems. They just test how the
'good' solvers behave in bad circumstances where bisection is
really the best. A good solver should not be much worse than
bisection in such circumstance, while being faster for smooth
monotone sorts of functions.
c                 ó   — | | dz
  z  S )z'f1 is a quadratic with roots at 0 and 1ç      ð?© ©Úxs    úm/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/scipy/optimize/_tstutils.pyÚf1r   A   s   € à��B‘‰<Ðó    c                 ó   — d| z  dz
  S ©Né   é   r   r	   s    r   Úf1_fpr   F   s   € Øˆq‰5�1‰9Ðr   c                  ó   — y©Nr   r   r	   s    r   Úf1_fppr   J   ó   € Ør   c                 ó   — | dz  dz
  S )z$f2 is a symmetric parabola, x**2 - 1r   r   r   r	   s    r   Úf2r   N   ó   € àˆa‰4�!‰8€Or   c                 ó   — d| z  S r   r   r	   s    r   Úf2_fpr   S   s   € Øˆq‰5€Lr   c                  ó   — yr   r   r	   s    r   Úf2_fppr   W   r   r   c                 ó*   — | | dz
  z  | dz
  z  | dz
  z  S )z%A quartic with roots at 0, 1, 2 and 3r   g       @g      @r   r	   s    r   Úf3r   [   s"   € à��B‘‰<˜1˜r™6Ñ" a¨"¡fÑ-Ð-r   c                 ó6   — d| dz  z  d| dz  z  z
  d| z  z   dz
  S )Né   é   é   r   é   é   r   r	   s    r   Úf3_fpr&   `   s+   € Øˆq�!‰t‰8�b˜1˜a™4‘iÑ " q¡&Ñ(¨1Ñ,Ð,r   c                 ó$   — d| dz  z  d| z  z
  dz   S )Né   r   é$   r$   r   r	   s    r   Úf3_fppr*   d   s   € Ø��1‘‰9�r˜A‘vÑ Ñ"Ð"r   c                 ó8   — | dkD  rdd| z  z   S | dk  rdd| z  z   S y)zBPiecewise linear, left- and right- discontinuous at x=1, the root.r   r   çš™™™™™¹?ç      ð¿r   r   r	   s    r   Úf4r.   h   s/   € àˆ1‚uØ�R˜!‘V‰|ÐØˆ1‚uØ�b˜1‘f‰}ÐØr   c                 ó   — | dk7  rdd| z
  z  S y)zY
    Hyperbola with a pole at x=1, but pole replaced with 0. Not continuous at root.
    r   r   r   r   r	   s    r   Úf5r0   q   s   € ð 	ˆA‚vØ�b˜1‘f‰~ÐØr   c                 óŽ   — t         j                  | d «      }|€,| dkD  rt        «       }n| dk  rt        «        }nd}|t         | <   |S )Nr   r   )Ú	_f6_cacheÚgetr   )r
   Úvs     r   Úf6r5   ~   sH   € Ü�‰�a˜Ó€AØ€yØˆqŠ5Ü“‰AØ�ŠUÜ“�	‰AàˆAØŒ	�!‰Ø€Hr   )	ÚfÚfprimeÚfprime2ÚargsÚbracketÚ
smoothnessÚx0ÚrootÚIDr   ç      à?r"   g333333ã?r   zoriginal.01.00zoriginal.02.00zoriginal.03.00éÿÿÿÿzoriginal.04.00zoriginal.05.00c                 ó8   — t        j                  | «      | dz  z
  S )z<Straightforward sum of trigonometric function and polynomialr   ©ÚnpÚsinr	   s    r   Úaps01_frE   ©   s   € ä�6‰6�!‹9�q˜1‘uÑÐr   c                 ó2   — t        j                  | «      dz
  S )Nr?   ©rC   Úcosr	   s    r   Úaps01_fprI   ®   s   € Ü�6‰6�!‹9�wÑÐr   c                 ó.   — t        j                  | «       S ©NrB   r	   s    r   Ú	aps01_fpprL   ²   ó   € Ü�F‰F�1‹Iˆ:Ðr   c                 óˆ   — t        j                  dd«      }dt        j                  d|z  dz
  dz  | |dz  z
  dz  z  «      z  S )zDpoles at x=n**2, 1st and 2nd derivatives at root are also close to 0r   é   éþÿÿÿr   é   r"   ©rC   ÚarangeÚsum©r
   Úiis     r   Úaps02_frW   ¶   sC   € ä	�‰�1�bÓ	€BØ”—‘˜˜B™ ™
 Q‘¨!¨b°!©e©)°a©Ñ7Ó8Ñ8Ð8r   c                 óˆ   — t        j                  dd«      }dt        j                  d|z  dz
  dz  | |dz  z
  dz  z  «      z  S )Nr   rO   r%   r   rQ   r!   rR   rU   s     r   Úaps02_fprY   ¼   sC   € Ü	�‰�1�bÓ	€BØŒr�v‰v�q˜2‘v ‘z A‘o¨¨R°©U©°Q©Ñ6Ó7Ñ7Ð7r   c                 óˆ   — t        j                  dd«      }dt        j                  d|z  dz
  dz  | |dz  z
  dz  z  «      z  S )Nr   rO   é   r   rQ   rR   rU   s     r   Ú	aps02_fppr\   Á   sC   € Ü	�‰�1�bÓ	€BØ”—‘˜˜B™ ™
 Q‘¨!¨b°!©e©)°a©Ñ7Ó8Ñ8Ð8r   c                 ó>   — || z  t        j                  || z  «      z  S )zRapidly changing at the root©rC   Úexp©r
   ÚaÚbs      r   Úaps03_frc   Æ   s   € àˆq‰5”2—6‘6˜!˜a™%“=Ñ Ð r   c                 óJ   — ||| z  dz   z  t        j                  || z  «      z  S ©Nr   r^   r`   s      r   Úaps03_fprf   Ë   s%   € Ø��A‘˜‘	‰?œRŸV™V A¨¡E›]Ñ*Ð*r   c                 óV   — |||| z  dz   z  |z   z  t        j                  || z  «      z  S re   r^   r`   s      r   Ú	aps03_fpprh   Ï   s/   € Ø��Q˜‘U˜Q‘Y‘ !Ñ#Ñ$¤r§v¡v¨a°!©e£}Ñ4Ð4r   c                 ó   — | |z  |z
  S )zMedium-degree polynomialr   ©r
   Únra   s      r   Úaps04_frl   Ó   r   r   c                 ó   — || |dz
  z  z  S re   r   rj   s      r   Úaps04_fprn   Ø   ó   € Øˆq�1�q‘5‰z‰>Ðr   c                 ó$   — ||dz
  z  | |dz
  z  z  S ©Nr   r   r   rj   s      r   Ú	aps04_fpprr   Ü   ó   € Ø��A‘‰;˜˜Q ™U™Ñ#Ð#r   c                 ó2   — t        j                  | «      dz
  S )zSimple Trigonometric functionr?   rB   r	   s    r   Úaps05_fru   à   s   € ä�6‰6�!‹9�wÑÐr   c                 ó,   — t        j                  | «      S rK   rG   r	   s    r   Úaps05_fprw   å   ó   € Ü�6‰6�!‹9Ðr   c                 ó.   — t        j                  | «       S rK   rB   r	   s    r   Ú	aps05_fpprz   é   rM   r   c                 óz   — d| z  t        j                  | «      z  dt        j                  | | z  «      z  z
  dz   S )z0Exponential rapidly changing from -1 to 1 at x=0r   r   r^   ©r
   rk   s     r   Úaps06_fr}   í   s8   € àˆq‰5”2—6‘6˜1˜"“:Ñ ¤B§F¡F¨A¨2°©6£NÑ 2Ñ2°QÑ6Ð6r   c                 ót   — dt        j                  | «      z  d|z  t        j                  | | z  «      z  z   S r   r^   r|   s     r   Úaps06_fpr   ò   s2   € ØŒr�v‰v�q�b‹z‰>˜A ™E¤B§F¡F¨A¨2°©6£NÑ2Ñ2Ð2r   c                 óF   — d|z  |z  t        j                  | | z  «      z  S ©NrP   r^   r|   s     r   Ú	aps06_fppr‚   ö   s#   € Ø�‰6�A‰:œŸ™ ˜r A™v›Ñ&Ð&r   c                 ó6   — dd|z
  dz  z   | z  d|| z  z
  dz  z
  S )z/Upside down parabola with parametrizable heightr   r   r   r|   s     r   Úaps07_fr„   ú   ó*   € à��Q‘˜‘
‰N˜aÑ 1 q¨1¡u¡9¨q¡.Ñ0Ð0r   c                 ó6   — dd|z
  dz  z   d|z  d|| z  z
  z  z   S rq   r   r|   s     r   Úaps07_fpr‡   ÿ   s*   € Ø��Q‘˜‘
‰N˜a !™e q¨1¨q©5¡yÑ1Ñ1Ð1r   c                 ó   — d|z  |z  S r�   r   r|   s     r   Ú	aps07_fppr‰     s   € Ø�‰6�A‰:Ðr   c                 ó   — | | z  d| z
  |z  z
  S )zDegree n polynomialr   r   r|   s     r   Úaps08_fr‹     s   € àˆq‰5�A˜‘E˜A‘:ÑÐr   c                 ó*   — d| z  |d| z
  |dz
  z  z  z   S r   r   r|   s     r   Úaps08_fpr�     s#   € Øˆq‰5�1˜˜A™  Q¡Ñ'Ñ'Ñ'Ð'r   c                 ó0   — d||dz
  z  d| z
  |dz
  z  z  z
  S r   r   r|   s     r   Ú	aps08_fppr�     s'   € Øˆq�A˜‘E‰{˜a !™e q¨1¡uÑ-Ñ-Ñ-Ð-r   c                 ó6   — dd|z
  dz  z   | z  d|| z  z
  dz  z
  S )z.Upside down quartic with parametrizable heightr   r!   r   r|   s     r   Úaps09_fr‘     r…   r   c                 ó<   — dd|z
  dz  z   d|z  d|| z  z
  dz  z  z   S )Nr   r!   r"   r   r|   s     r   Úaps09_fpr“     s.   € Ø��Q‘˜‘
‰N˜a !™e q¨1¨q©5¡y°1¡nÑ4Ñ4Ð4r   c                 ó$   — d|z  d|| z  z
  dz  z  S )Niôÿÿÿr   r   r   r|   s     r   Ú	aps09_fppr•     s   € Ø�‰7�a˜!˜a™%‘i !‘^Ñ#Ð#r   c                 óL   — t        j                  | | z  «      | dz
  z  | |z  z   S )zExponential plus a polynomialr   r^   r|   s     r   Úaps10_fr—   !  s(   € ä�6‰6�1�"�q‘&‹>˜Q ™UÑ# a¨¡dÑ*Ð*r   c                 óf   — t        j                  | | z  «      | | dz
  z  dz   z  || |dz
  z  z  z   S re   r^   r|   s     r   Úaps10_fpr™   &  s;   € Ü�6‰6�1�"�q‘&‹>˜a˜R 1 q¡5™\¨AÑ-Ñ.°°Q¸¸Q¹±Z±Ñ?Ð?r   c                 óˆ   — t        j                  | | z  «      | | | dz
  z  dz   z  | | z  z   z  ||dz
  z  | |dz
  z  z  z   S rq   r^   r|   s     r   Ú	aps10_fppr›   *  s[   € Ü�F‰F�A�2˜‘6‹N˜q˜b Q B¨!¨a©%¡L°1Ñ$4Ñ5¸¸¸Q¹Ñ>Ñ?Ø�1�q‘5‰k˜A  A¡™JÑ&ñ'ð (r   c                 ó$   — || z  dz
  |dz
  | z  z  S )z8Rational function with a zero at x=1/n and a pole at x=0r   r   r|   s     r   Úaps11_fr�   /  s   € à�‰E�A‰I˜1˜q™5 A™+Ñ&Ð&r   c                 ó   — d|dz
  z  | dz  z  S rq   r   r|   s     r   Úaps11_fprŸ   4  s   € Ø��A‘‰;˜˜A™ÑÐr   c                 ó   — d|dz
  z  | dz  z  S )NrP   r   r"   r   r|   s     r   Ú	aps11_fppr¡   8  s   € Ø��Q‘‰<˜!˜Q™$ÑÐr   c                 óh   — t        j                  | d|z  «      t        j                  |d|z  «      z
  S )z!nth root of x, with a zero at x=nr   ©rC   Úpowerr|   s     r   Úaps12_fr¥   <  s+   € ä�8‰8�A�s˜Q‘wÓ¤"§(¡(¨1¨c°A©gÓ"6Ñ6Ð6r   c                 ó@   — t        j                  | d|z
  |z  «      |z  S )Nr   r£   r|   s     r   Úaps12_fpr§   A  s    € Ü�8‰8�A˜˜a™ 1‘}Ó%¨Ñ)Ð)r   c                 ó^   — t        j                  | dd|z  z
  |z  «      d|z  z  d|z
  z  |z  S )Nr   r   r£   r|   s     r   Ú	aps12_fppr©   E  s7   € Ü�8‰8�A˜˜a !™e™ qÑ(Ó)¨S°1©WÑ5¸¸q¹ÑAÀAÑEÐEr   c                 ób   — | dk(  ryd| dz  z  }|t         kD  ry| t        j                  |«      z  S )z-Function with *all* derivatives 0 at the rootr   r   r   ©Ú_MAX_EXPABLErC   r_   ©r
   Úys     r   Úaps13_fr¯   L  s8   € àˆA‚vØð 	
ˆAˆq‰D‰€AØŒ<ÒØØŒr�v‰v�a‹y‰=Ðr   c                 ót   — | dk(  ryd| dz  z  }|t         kD  rydd| dz  z  z   t        j                  |«      z  S )Nr   r   r   r«   r­   s     r   Úaps13_fpr±   Y  sC   € ØˆA‚vØØ	ˆAˆq‰D‰€AØŒ<ÒØØ��A�q‘D‘‰LœBŸF™F 1›IÑ%Ð%r   c                 ó€   — | dk(  ryd| dz  z  }|t         kD  rydd| dz  z
  z  | dz  z  t        j                  |«      z  S )Nr   r   r   rQ   r«   r­   s     r   Ú	aps13_fppr³   b  sL   € ØˆA‚vØØ	ˆAˆq‰D‰€AØŒ<ÒØØ��A�q‘D‘‰>˜A˜q™DÑ ¤2§6¡6¨!£9Ñ,Ð,r   c                 ó`   — | dk  r| dz  S |dz  | dz  t        j                  | «      z   dz
  z  S )z<0 for negative x-values, trigonometric+linear for x positiver   ç      4@ç      ø?r   rB   r|   s     r   Úaps14_fr·   k  s:   € àˆA‚vØˆr�D‰yÐØˆt‰8�q˜3‘w¤§¡¨£Ñ*¨QÑ.Ñ/Ð/r   c                 óJ   — | dk  ry|dz  dt        j                  | «      z   z  S )Nr   rµ   gUUUUUUå?rG   r|   s     r   Úaps14_fpr¹   r  s(   € ØˆA‚vØØˆt‰8�y¤2§6¡6¨!£9Ñ,Ñ-Ð-r   c                 óF   — | dk  ry| dz  t        j                  | «      z  S )Nr   rµ   rB   r|   s     r   Ú	aps14_fppr»   x  s%   € ØˆA‚vØØˆ2�‰9œŸ™˜q›	Ñ"Ð"r   c                 ó’   — | dk  ry| dd|z   z  kD  rt         j                  dz
  S t        j                  |dz   | z  dz  dz  «      dz
  S )z6piecewise linear, constant outside of [0, 0.002/(1+n)]r   g°rh‘í|ë¿çü©ñÒMb`?r   çX9´Èv¾ý?r   éè  ©rC   Úer_   r|   s     r   Úaps15_frÂ   ~  sP   € àˆ1‚uØØˆ8�q˜1‘uÑÒÜ�t‰t�e‰|ÐÜ�6‰6�1�q‘5˜A‘+ ‘/ DÑ(Ó)¨EÑ1Ð1r   c                 ó¨   — d| cxk  rdd|z   z  k  sn t         j                  dz
  S t        j                  |dz   | z  dz  dz  «      |dz   z  dz  dz  S ©Nr   r½   r   r¾   r   r¿   rÀ   r|   s     r   Úaps15_fprÅ   ‡  sY   € Ø�Ô'�X  Q¡Ñ'Ô'Ü�t‰t�e‰|ÐÜ�6‰6�1�q‘5˜A‘+ ‘/ DÑ(Ó)¨Q°©UÑ3°aÑ7¸$Ñ>Ð>r   c                 óÀ   — d| cxk  rdd|z   z  k  sn t         j                  dz
  S t        j                  |dz   | z  dz  dz  «      |dz   z  dz  dz  |dz   z  dz  dz  S rÄ   rÀ   r|   s     r   Ú	aps15_fpprÇ   �  sl   € Ø�Ô'�X  Q¡Ñ'Ô'Ü�t‰t�e‰|ÐÜ�6‰6�1�q‘5˜A‘+ ‘/ DÑ(Ó)¨Q°©UÑ3°aÑ7¸$Ñ>À!ÀaÁ%ÑHÈ1ÑLÈtÑSÐSr   r   g¼©êËñSþ?z	aps.01.00g0¸D   ð?gè£Ýÿÿÿ@gêØ=î.@z	aps.02.00g.   @gúh÷ÿÿÿ!@rQ   gèÆ¸ä)¼@z	aps.02.01g—   "@gúh÷ÿÿÿ/@é
   g�xs7z&@z	aps.02.02gƒK   0@g}´ûÿÿÿ8@é   gô^^W­3@z	aps.02.03gƒK   9@g?ÚýÿÿÿA@é   gÏýÀ´Ô=@z	aps.02.04gÁ%   B@g?ÚýÿÿH@é%   gn’��ûóD@z	aps.02.05gÁ%  €H@g?ÚýÿÿÿO@é2   gØ›[múK@z	aps.02.06gá   P@gíþÿÿ?T@éA   güË%ÿQ@z	aps.02.07gá  @T@gíþÿÿÿX@éR   gÉkYM‘€V@z	aps.02.08gá   Y@gíþÿÿ?^@ée   gz–i¶²�[@z	aps.02.09)iØÿÿÿr@   i÷ÿÿÿé   rP   z	aps.03.00)iœÿÿÿrP   z	aps.03.01)i8ÿÿÿéýÿÿÿz	aps.03.02)r!   çš™™™™™É?g      @gl�lRfå?z	aps.04.00)r%   rÒ   g_
Ÿxè?z	aps.04.01)é   rÒ   glÁTj"+ê?z	aps.04.02)rÈ   rÒ   g±0 8->ë?z	aps.04.03)r(   rÒ   gÁ ‰Èûë?z	aps.04.04)r!   r   r   z	aps.04.05)r%   r   z	aps.04.06)rÓ   r   z	aps.04.07)rÈ   r   z	aps.04.08)r(   r   z	aps.04.09gffffffî¿g333333@r¶   z	aps.04.10z	aps.04.11z	aps.04.12)é   r   z	aps.04.13gÍÌÌÌÌÌô?r%   z	aps.05.00)r   g™­Œòß	Û?z	aps.06.00)r   gì”n�ö Ó?z	aps.06.01)r"   gs Hda¢Ì?z	aps.06.02)r!   g©½X�äúÅ?z	aps.06.03)rQ   gš™™™™™Ù?gŽ´i²Á?z	aps.06.04)é   r,   g]ßÿ›¾¡?z	aps.06.05)é(   gš™™™™™©?g¿”.ÿ›¾‘?z	aps.06.06)é<   g¡?gTÆèþÏ¨‡?z	aps.06.07)éP   gš™™™™™™?g¿”.ÿ›¾�?z	aps.06.08)éd   g{®Gáz”?gÍº}Ë,d|?z	aps.06.09gžzÐ©£?z	aps.07.00)rÈ   gž3_ÙtF„?z	aps.07.01g¬å–ÛÅmd?z	aps.07.02gÍÌÌÌÌÌì?z	aps.08.00gÎ�ýª$Ö?z	aps.08.01gæ¬~++`Ï?z	aps.08.02)é   gx5ó[´É?z	aps.08.03g¨²öB!Å?z	aps.08.04g.xzì¡Ñ?z	aps.09.00g.xzì¡Á?z	aps.09.01gIêlÆï…?z	aps.09.02g:´* ¡m?z	aps.09.03)rÓ   géÏl¿Mí:?z	aps.09.04gçÐR†@û>z	aps.09.05gKu-°à>z	aps.09.06g�G"ÀïªÙ?z	aps.10.00gûXbT„à?z	aps.10.01gó,ÄCá?z	aps.10.02g=N˜µŠá?z	aps.10.03gÈaw²Á¯á?z	aps.10.04ç{®Gáz„?z	aps.11.00rÒ   z	aps.11.01g±?z	aps.11.02z	aps.11.03rÙ   gš™™™™™ñ?z	aps.12.00z	aps.12.01r!   z	aps.12.02z	aps.12.03)r%   z	aps.12.04)é   rÜ   z	aps.12.05)é	   rÝ   z	aps.12.06)é   rÞ   z	aps.12.07)é   rß   z	aps.12.08rÚ   z	aps.12.09)rÉ   z	aps.12.10)é   rà   z	aps.12.11)rO   rO   z	aps.12.12)é   rá   z	aps.12.13)é   râ   z	aps.12.14)é   rã   z	aps.12.15)é   rä   z	aps.12.16)rÐ   z	aps.12.17)é!   rå   z	aps.12.18z	aps.13.00iüÿÿgh¿9öã?z	aps.14.00z	aps.14.01z	aps.14.02z	aps.14.03z	aps.14.04z	aps.14.05z	aps.14.06z	aps.14.07z	aps.14.08z	aps.14.09z	aps.14.10)r(   z	aps.14.11z	aps.14.12)rÔ   z	aps.14.13z	aps.14.14)é   z	aps.14.15z	aps.14.16)r#   z	aps.14.17z	aps.14.18z	aps.14.19z	aps.14.20)r$   z	aps.14.21z	aps.14.22)r[   z	aps.14.23z	aps.14.24)rÊ   z	aps.14.25z	aps.14.26)é   z	aps.14.27z	aps.14.28)é   z	aps.14.29z	aps.14.30)é    z	aps.14.31z	aps.14.32)é"   z	aps.14.33)é#   z	aps.14.34)r)   z	aps.14.35)rË   z	aps.14.36)é&   z	aps.14.37)é'   z	aps.14.38z	aps.14.39g-Cëâ6?gBïi»õ?z	aps.15.00gpÄµx�?z	aps.15.01gï­þ¸‰D?z	aps.15.02gYôû?z	aps.15.03gVXÁl�
?z	aps.15.04gÈ^†�	?z	aps.15.05g3�¼Qu?z	aps.15.06gq3ÑŽL8?z	aps.15.07gm¤Û¾Rk?z	aps.15.08gHtö/¬?z	aps.15.09g˜²´Wù?z	aps.15.10g÷üBQ?z	aps.15.11gWõ‚Î¥³?z	aps.15.12gßBN?z	aps.15.13gôõ@rp“?z	aps.15.14gæ`MýW?z	aps.15.15gØ-ÿrc’?z	aps.15.16gÍ[.„?z	aps.15.17g†”½®³« ?z	aps.15.18g5×øcA ?z	aps.15.19g\â‡è
·ÿ>z	aps.15.20guW”­²¿é>z	aps.15.21)éÈ   g,Y~àÙ>z	aps.15.22)i,  gƒïªGÑ>z	aps.15.23)i�  g]4H-ñÉ>z	aps.15.24)iô  g2”vÃÄ>z	aps.15.25)iX  gwžaOÁ>z	aps.15.26)i¼  gAb³EÙ­½>z	aps.15.27)i   gÊõÓ¥Mù¹>z	aps.15.28)i„  gÝ¢ÓO·>z	aps.15.29)r¿   gá$lÅÈ´>z	aps.15.30c                 ó   — | |z  |z
  S )z&z**n-a:  Use to find the nth root of ar   ©Úzrk   ra   s      r   Úcplx01_frò   ã  r   r   c                 ó   — || |dz
  z  z  S re   r   rð   s      r   Ú	cplx01_fprô   è  ro   r   c                 ó$   — ||dz
  z  | |dz
  z  z  S rq   r   rð   s      r   Ú
cplx01_fpprö   ì  rs   r   c                 ó2   — t        j                  | «      |z
  S )z"e**z - a: Use to find the log of ar^   ©rñ   ra   s     r   Úcplx02_frù   ð  s   € ä�6‰6�!‹9�q‰=Ðr   c                 ó,   — t        j                  | «      S rK   r^   rø   s     r   Ú	cplx02_fprû   õ  rx   r   c                 ó,   — t        j                  | «      S rK   r^   rø   s     r   Ú
cplx02_fpprý   ù  rx   r   )	r6   r7   r8   r9   r;   r<   Úx1r=   r>   )r   r@   y      ð?      ð?y      à?      à?ù              ð?zcomplex.01.00)r"   r   y      ð¿      ð?y      à¿       @g      à¿zcomplex.01.01)r"   r@   zcomplex.01.02)r"   rÓ   zcomplex.01.03)r@   y      ð?       @zcomplex.02.00)rÿ   y              à?zcomplex.02.01c                 óh   — | D ]-  }t        ddg|j                  dg «      «      D ]
  \  }}|||<   Œ Œ/ y)z:Add "a" and "b" keys to each test from the "bracket" valuera   rb   r:   N)Úzipr3   )ÚtestsÚdÚkr4   s       r   Ú_add_a_br  $  s9   € ãˆÜ˜˜c˜
 A§E¡E¨)°RÓ$8Ö9‰DˆAˆqØˆAˆaŠDñ :ñ r   c                 ó¢   — | xs d} t         t        t        t        dœ}|j	                  | g «      }|�|D �cg c]  }|d   |k\  sŒ|‘Œ }}|S c c}w )aÍ  Return the requested collection of test cases, as an array of dicts with subset-specific keys

    Allowed values of collection:
    'original': The original benchmarking functions.
         Real-valued functions of real-valued inputs on an interval with a zero.
         f1, .., f3 are continuous and infinitely differentiable
         f4 has a single discontinuity at the root
         f5 has a root at 1 replacing a 1st order pole
         f6 is randomly positive on one side of the root, randomly negative on the other
    'aps': The test problems in the TOMS "Algorithm 748: Enclosing Zeros of Continuous Functions"
         paper by Alefeld, Potra and Shi. Real-valued functions of
         real-valued inputs on an interval with a zero.
         Suitable for methods which start with an enclosing interval, and
         derivatives up to 2nd order.
    'complex': Some complex-valued functions of complex-valued inputs.
         No enclosing bracket is provided.
         Suitable for methods which use one or more starting values, and
         derivatives up to 2nd order.

    The dictionary keys will be a subset of
    ["f", "fprime", "fprime2", "args", "bracket", "a", b", "smoothness", "x0", "x1", "root", "ID"]
    Úoriginal)ÚapsÚcomplexr  Úchandrupatlar;   )Ú_APS_TESTS_DICTSÚ_COMPLEX_TESTS_DICTSÚ_ORIGINAL_TESTS_DICTSÚ_CHANDRUPATLA_TESTS_DICTSr3   )Ú
collectionr;   Úsubsetsr  Útcs        r   Ú	get_testsr  0  sd   € ð. Ò)˜z€JÜ&Ü.Ü0Ü8ñ:€Gð �K‰K˜
 BÓ'€EØÐÙ#ÓF™e˜ r¨,Ñ'7¸:Ó'E’˜eˆÐFØ€Lùò Gs   ¶AÁA)z	cc.bisectz	cc.ridderz	cc.brenthz	cc.brentq)r   r   r.   r0   r5   c                 ó   — | dz  d| z  z
  dz
  S )Nr"   r   rQ   r   r	   s    r   Úfun1r  \  s   € Øˆa‰4�!�A‘#‰:˜‰>Ðr   gã5¤Á @c                 ó   — dd| dz  z  z
  S rq   r   r	   s    r   Úfun2r  a  s   € Øˆq��A‘‰v‰:Ðr   c                 ó   — | dz
  dz  S )Nr"   r   r	   s    r   Úfun3r  f  s   € Øˆa‰C�!‰8€Or   c                 ó   — d| dz
  dz  z  S )Nr%   r   rQ   r   r	   s    r   Úfun4r  k  s   € Øˆa�‰c�A‰X‰:Ðr   c                 ó   — | dz  S )NrÝ   r   r	   s    r   Úfun5r  p  s   € Øˆa‰4€Kr   c                 ó   — | dz  S )Nrà   r   r	   s    r   Úfun6r  u  s   € Øˆb‰5€Lr   c                 ót   — t        | «      }|j                  | «      dk  rdS | |j                  | dz   «      z  S )NgžŽ’Wç8?r   rP   )r   Úabsr_   ©r
   Úxps     r   Úfun7r#  z  s:   € Ü	˜Ó	€BØ—‘�q“	˜FÒ"ˆ1Ð:¨¨"¯&©&°!°b±'°Ó*:Ñ(:Ð:r   c                 óž   — t        | «      }d}dd|z
  z  |j                  |  «      z   |d|z
  |j                  |  «      z  z   z  dz
  d| z  z   S )NgéeË-­ã?iö  r   iõ  i\  ©r   r_   )r
   r"  Úxis      r   Úfun8r'  €  s\   € Ü	˜Ó	€BØ	€BØ�1�R‘4‰[˜Ÿ™  ›Ñ#Ð$ b¨A¨b©D°"·&±&¸!¸³*Ñ+<Ñ&<Ñ=ÀÑDÀtÈAÁvÑMÐMr   g;6b¿™ð?c                 ód   — t        | «      }|j                  | «      dz
  d| dz  z  z
  d| dz  z  z   S )Nr   rÛ   g�íµ ÷ÆÀ>r"   r%  r!  s     r   Úfun9r)  ‡  s8   € Ü	˜Ó	€BØ�6‰6�!‹9�q‰=˜4  1¡™9Ñ$ w¨q°!©t¡|Ñ3Ð3r   gGô÷o§€æ?)r6   r:   r=   Únfevalr>   rÔ   g     ˆÃÀg     ˆÃ@g    _ Âg    _ Bé+   g)\�Âõ(ø?rÓ   r$   g�íµ ÷Æ°>g    €„.Arç   g»½×Ùß|Û=é)   gê-�™—q=g   ¢”mBé0   iöÿÿÿr)   g    €„.Áé-   é7   é6   éûÿÿÿr-   g      @g       Àg      @g      $@g      Àg      I@g      $Àg      Y@r#   g-Cëâ6*?r(   éQ   Ú.)r  N)vÚ__doc__r   ÚnumpyrC   Úscipy.optimizer   ÚccÚscipy._lib._array_apir   Údescriptionr   r   r   r   r   r   r   r&   r*   r.   r0   r2   r5   Ú_ORIGINAL_TESTS_KEYSÚsqrtÚinfÚ_ORIGINAL_TESTSÚdictr  r  rE   rI   rL   rW   rY   r\   rc   rf   rh   rl   rn   rr   ru   rw   rz   r}   r   r‚   r„   r‡   r‰   r‹   r�   r�   r‘   r“   r•   r—   r™   r›   r�   rŸ   r¡   r¥   r§   r©   ÚlogÚfinfoÚfloatÚmaxr¬   r¯   r±   r³   r·   r¹   r»   rÂ   rÅ   rÇ   Ú_APS_TESTS_KEYSÚpiÚ
_APS_TESTSr  rò   rô   rö   rù   rû   rý   Ú_COMPLEX_TESTS_KEYSÚ_COMPLEX_TESTSr  r  r  ÚbisectÚridderÚbrenthÚbrentqÚmethodsÚmstringsÚ	functionsÚfstringsr  r=   r  r  r  r  r  r#  r'  r)  Ú_CHANDRUPATLA_TESTS_KEYSÚ_CHANDRUPATLA_TESTSÚ	enumerateÚ__name__r  )ÚtestcaseÚiÚtests   000r   Ú<module>rW     s %  ðñõR ã å *Ý 1ð€òò
òòò
òò.ò
-ò#òòð €	ò
ò,Ð ð ˆ�˜˜S ' "§'¡'¨!£*Ð-¨r¯v©v°s¸CÐAQÐRØˆ�˜˜S ' "§'¡'¨!£*Ð-¨r¯v©v°s¸CÐAQÐRØˆ�˜˜S ' "§'¡'¨!£*Ð-¨r¯v©v°s¸CÐAQÐRØˆˆt�R˜#˜w˜rŸw™w q›zÐ*¨B°°SÐ:JÐKØˆˆt�R˜#˜w˜rŸw™w q›zÐ*¨B°°SÐ:JÐKØˆˆt�R˜#˜w˜rŸw™w q›zÐ*¨R¯V©V¨G°S¸#Ð?OÐPð€ñ ?NóÙ>M°(�D‰Ð! 8Ó	,Õ-¸oñÐ òò
òò9ò8ò
9ò
!ò
+ò5òò
ò$òò
òò7ò
3ò'ò1ò
2òòò
(ò.ò1ò
5ò$ò+ò
@ò(ò
'ò
òò7ò
*òFð ˆr�v‰v�h�b—h‘h˜u“o×)Ñ)Ó*€ò
ò&ò-ò0ò.ò#ò2ò?òTò(€ðuØˆh˜	 2¨¯©°©	°2·5±5Ð'9¸2¿6¹6ØÐ ð.ðuð ˆh˜	 2¨°(Ð';¸R¿V¹VØÐ ð.ðuð
 ˆh˜	 2¨°(Ð';¸R¿V¹VØÐ ð.ðuð ˆh˜	 2¨°)Ð'<¸b¿f¹fØÐ	  +ð/ðuð ˆh˜	 2¨	°9Ð'=¸r¿v¹vØÐ	  +ð/ðuð ˆh˜	 2¨	°9Ð'=¸r¿v¹vØÐ	  +ð/ðuð ˆh˜	 2¨	°9Ð'=¸r¿v¹vØÐ	  +ð/ðuð ˆh˜	 2¨	°9Ð'=¸r¿v¹vØÐ	  +ð/ðuð" ˆh˜	 2¨	°9Ð'=¸r¿v¹vØÐ	  +ð/ð#uð& ˆh˜	 2¨	°:Ð'>ÀÇÁØÐ	  +ð/ð'uð* ˆh˜	 2¨
°JÐ'?ÀÇÁØÐ
! ;ð0ð+uð. ˆh˜	 9¨r°2¨h¸¿¹ØˆˆKðð/uð2 ˆh˜	 :°°B¨x¸¿¹ØˆˆKðð3uð6 ˆh˜	 :°°B¨x¸¿¹ØˆˆKðð7uð: ˆh˜	 8¨a°¨V°R·V±VØÐ
! ;ð0ð;uð> ˆh˜	 8¨a°¨V°R·V±VØÐ
! ;ð0ð?uðB ˆh˜	 8¨a°¨V°R·V±VØÐ
! ;ð0ðCuðF ˆh˜	 9¨q°!¨f°b·f±fØÐ
! ;ð0ðGuðJ ˆh˜	 9¨q°!¨f°b·f±fØÐ
! ;ð0ðKuðN ˆh˜	 6¨A¨q¨6°2·6±6Øˆ!ˆ[ððOuðR ˆh˜	 6¨A¨q¨6°2·6±6Øˆ!ˆ[ððSuðV ˆh˜	 6¨A¨q¨6°2·6±6Øˆ!ˆ[ððWuðZ ˆh˜	 7¨Q°¨F°B·F±FØˆ!ˆ[ðð[uð^ ˆh˜	 7¨Q°¨F°B·F±FØˆ!ˆ[ðð_uðb ˆh˜	 6¨E°4¨=¸"¿&¹&Øˆ!ˆ[ððcuðf ˆh˜	 7¨U°D¨M¸2¿6¹6Øˆ!ˆ[ððguðj ˆh˜	 7¨U°D¨M¸2¿6¹6Øˆ!ˆ[ððkuðn ˆh˜	 7¨U°D¨M¸2¿6¹6Øˆ!ˆ[ððouðr ˆh˜	 2¨¨3 x°·±Øˆ"�%‰%�!‰)�[ð"ðsuðv ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ðwuðz ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ð{uð~ ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ðuðB ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ðCuðF ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ðGuðJ ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ðKuðN ˆh˜	 5¨1¨a¨&°"·&±&Ø
Ð# [ð2ðOuðR ˆh˜	 5¨1¨a¨&°"·&±&ØÐ&¨ð5ðSuðV ˆh˜	 5¨1¨a¨&°"·&±&ØÐ% {ð4ðWuðZ ˆh˜	 6¨A¨q¨6°2·6±6Ø
Ð# [ð2ð[uð^ ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ð_uðb ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ðcuðf ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ðguðj ˆh˜	 4¨!¨Q¨°·±Øˆ#ˆ{ððkuðn ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ðouðr ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ðsuðv ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ðwuðz ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ð{uð~ ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ðuðB ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ðCuðF ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ðGuðJ ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ðKuðN ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ðOuðR ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ðSuðV ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ðWuðZ ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ð[uð^ ˆh˜	 4¨!¨Q¨°·±ØÐ
! ;ð0ð_uðb ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ðcuðf ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ðguðj ˆh˜	 5¨1¨a¨&°"·&±&ØÐ
! ;ð0ðkuðn ˆh˜	 4¨$°¨°B·F±FØ
ˆG�[ð"ðouðr ˆh˜	 4¨$°¨°B·F±FØ
‰G‘[ð"ðsuðv ˆh˜	 5¨4°¨)°R·V±VØ
‰H‘kð#ðwuðz ˆh˜	 5¨4°¨)°R·V±VØ
ˆH‘kð#ð{uð~ ˆh˜	 4¨!©S¨°2·6±6Ùˆ!‰[ððuðB ˆh˜	 4¨!©S¨°2·6±6Ùˆ!‰[ððCuðF ˆh˜	 4¨!©S¨°2·6±6Ù‰!‰[ððGuðJ ˆh˜	 4¨!©S¨°2·6±6Ùˆ!‰[ððKuðN ˆh˜	¡4¨!©S¨°2·6±6Ùˆ!‰[ððOuðR ˆh˜	¡4¨!©S¨°2·6±6Ù‰!‰[ððSuðV ˆh˜	¡4¨!©S¨°2·6±6Ù‰!‰[ððWuðZ ˆh˜	¡5¨1©c¨(°B·F±FÙ‰"‰kðð[uð^ ˆh˜	¡5¨1©c¨(°B·F±FÙ‰"‰kðð_uðb ˆh˜	 5¨1©c¨(°B·F±FÙ‰"‰kððcuðf ˆh˜	¡5¨1©c¨(°B·F±FÙˆ"‰kððguðj ˆh˜	¡5¨1©c¨(°B·F±FÙ‰"‰kððkuðn ˆh˜	¡5¨1©c¨(°B·F±FÙ‰"‰kððouðr ˆh˜	¡5¨1©c¨(°B·F±FÙ‰"‰kððsuðv ˆh˜	¡5¨1©c¨(°B·F±FÙ‰"‰kððwuðz ˆh˜	¡5¨1©c¨(°B·F±FÙ‰"‰kðð{uð~ ˆh˜	¡5¨1©c¨(°B·F±FÙ‰"‰kððuðB ˆh˜	¡5¨1©c¨(°B·F±FÙˆ"‰kððCuðF ˆh˜	¡5¨1©c¨(°B·F±FÙ‰"‰kððGuðJ ˆh˜	 2¨©A w°·±Øˆ!‰[ððKuðN ˆh˜	 4©%°·±¸±Ð);¸QØÑ¡ð.ðOuðR ˆh˜	 4©%°·±¸±Ð);¸QØÑ¡ð.ðSuðV ˆh˜	 4©%°·±¸±Ð);¸QØÑ¡ð.ðWuðZ ˆh˜	 4©%°·±¸±Ð);¸QØÑ¡ð.ð[uð^ ˆh˜	 4©%°·±¸±Ð);¸QØÑ¡ð.ð_uðb ˆh˜	¡4©%°·±¸±Ð);¸QØÑ¡ð.ðcuðf ˆh˜	¡4©%°·±¸±Ð);¸QØÑ¡ð.ðguðj ˆh˜	 4©%°·±¸±Ð);¸QØÑ¡ð.ðkuðn ˆh˜	¡4©%°·±¸±Ð);¸QØÑ¡ð.ðouðr ˆh˜	 5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðsuðv ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðwuðz ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ð{uð~ ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðuðB ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðCuðF ˆh˜	 5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðGuðJ ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðKuðN ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðOuðR ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðSuðV ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðWuðZ ˆh˜	 5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ð[uð^ ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ð_uðb ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðcuðf ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðguðj ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðkuðn ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðouðr ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðsuðv ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðwuðz ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ð{uð~ ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðuðB ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðCuðF ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðGuðJ ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðKuðN ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðOuðR ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðSuðV ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðWuðZ ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ð[uð^ ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ð_uðb ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðcuðf ˆh˜	¡5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðguðj ˆh˜	 5©5°"·%±%¸!±)Ð*<¸aØÑ¡ð.ðkuðn ˆh˜	 5©5±$¨-¸ØÑ	 ¡+ð/ðouðr ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðsuðv ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðwuðz ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ð{uð~ ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðuðB ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðCuðF ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðGuðJ ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðKuðN ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðOuðR ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðSuðV ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðWuðZ ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ð[uð^ ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ð_uðb ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðcuðf ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðguðj ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðkuðn ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðouðr ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðsuðv ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ðwuðz ˆh˜	¡5©5±$¨-¸ØÑ	 ¡+ð/ð{uð~ ˆh˜	 5©5±$¨-¸ØÑ	 ¡+ð/ðuðB	 ˆh˜	 6©E±4¨=¸!ØÑ	 ¡+ð/ðC	uðF	 ˆh˜	¡6©E±4¨=¸!ØÑ	 ¡+ð/ðG	uðJ	 ˆh˜	¡6©E±4¨=¸!ØÑ	 ¡+ð/ðK	uðN	 ˆh˜	¡6©E±4¨=¸!ØÑ	 ¡+ð/ðO	uðR	 ˆh˜	¡6©E±4¨=¸!ØÑ	 ¡+ð/ðS	uðV	 ˆh˜	¡6©E±4¨=¸!ØÑ	 ¡+ð/ðW	uðZ	 ˆh˜	¡6©E±4¨=¸!ØÑ	 ¡+ð/ð[	uð^	 ˆh˜	¡6©E±4¨=¸!ØÑ	 ¡+ð/ð_	uðb	 ˆh˜	¡6©E±4¨=¸!ØÑ	 ¡+ð/ðc	uðf	 ˆh˜	¡7©U±D¨M¸1ØÑ	 ¡+ð/ðg	u€
ñn	 JTÓTÉ¸X‘D™˜_¨hÓ7Õ8ÈÑTÐ óó
ó$óó
óó$Ð ð ˆy˜*¡g¨r¯v©vÙ‘
™R¡ð2àˆy˜*¡f¨b¯f©fÙ‘¡ w r§w¡w¨q£z°A¡~¹Ñ'<Ñ <Ùðð ˆy˜*¡g¨r¯v©vÙ‰*˜˜g˜bŸg™g a›j¨1™n©tÑ3Ñ3Ùðð ˆy˜*¡f¨b¯f©fØ‰ˆ1‰oðàˆy˜*¡e¨R¯V©VÙ‘
˜RŸU™U¡T™\©?ð<àˆy˜*¡e¨R¯V©VÙ‘
˜RŸU™U¡T™\©?ð<ð€ñ$ >LóÙ=K°�D‰Ð  (Ó	+Õ,¸^ñÐ ó
ñ 	Ð	Ô Ù Ð	Ô Ù Ð	Ô õðF �9‰9�b—i‘i §¡¨B¯I©IÐ
6€Û?€Ø��R˜˜RÐ €	Û)€óá€„	óà€„	óà€„	óà€„	óà€„	óà€„	ó;ð €„	óNñ €„	ó4ñ €„	ó DÐ ð.Ø	ˆAˆqˆ6�4—9‘9™aÐ ð.à	ˆAˆrˆ7�D—I‘I™rÐ"ð.ð 
ˆA‰sˆ8�T—Y‘Y¡Ð#ð.ð 
‰D‘#ˆ;˜Ÿ	™	¡2Ð&ð	.ð
 
‰E‘4ˆ=˜$Ÿ)™)¡RÐ(ð.ð 
ˆC‘ˆ;˜Ÿ	™	¡1Ð%ð.ð 
‰D‘#ˆ;˜Ÿ	™	¡2Ð&ð.ð 
‰D‘#ˆ;˜Ÿ	™	¡2Ð&ð.ð 
‰E‘4ˆ=˜$Ÿ)™)¡RÐ(ð.ð 
‰E‘4ˆ=˜$Ÿ)™)¡RÐ(ð.ð 
ˆAˆqˆ6�4—9‘9™bÐ!ð.ð 
‰C�ˆ9�d—i‘i¡Ð$ð.ð 
‰D‘#ˆ;˜Ÿ	™	¡2Ð&ð.ð 
‰D‘#ˆ;˜Ÿ	™	¡2Ð&ð.ð 
‰E‘4ˆ=˜$Ÿ)™)¡RÐ(ð.ð  
ˆAˆqˆ6�4—9‘9™bÐ!ð!.ð" 
‰C�ˆ9�d—i‘i¡Ð$ð#.ð$ 
‰D‘#ˆ;˜Ÿ	™	¡2Ð&ð%.ð& 
‰D‘#ˆ;˜Ÿ	™	¡2Ð&ð'.ð( 
‰E‘4ˆ=˜$Ÿ)™)¡RÐ(ð).ð* 
ˆB‘ˆ7�D—I‘I™rÐ"ð+.ð, 
ˆB�ˆ7�D—I‘I™rÐ"ð-.ð. 
ˆB�ˆ8�T—Y‘Y¡Ð#ð/.ð0 
‰B�ˆ8�T—Y‘Y¡Ð#ð1.ð2 
‰C‘ˆ:�t—y‘y "Ð%ð3.ð4 
‰C‘ˆ9�d—i‘i¡Ð$ð5.ð6 
‰C‘ˆ9�d—i‘i¡Ð$ð7.ð8 
‰C‘ˆ:�t—y‘y¡"Ð%ð9.ð: 
‰C‘ˆ:�t—y‘y¡"Ð%ð;.ð< 
‰D‘$ˆ<˜Ÿ™ BÐ'ð=.ð> 
ˆB‘ˆ7�D—I‘I™qÐ!ð?.ð@ 
ˆB�ˆ7�D—I‘I™qÐ!ðA.ðB 
ˆB�ˆ8�T—Y‘Y¡Ð#ðC.ðD 
‰B�ˆ8�T—Y‘Y¡Ð#ðE.ðF 
‰C‘ˆ:�t—y‘y¡"Ð%ðG.ðH 
‰D�!ˆ9�d—i‘i¡Ð#ðI.ðJ 
‰D�!ˆ9�d—i‘i Ð$ðK.ðL 
‰D‘!ˆ9�d—i‘i¡Ð$ðM.ðN 
‰D‘"ˆ:�t—y‘y¡"Ð%ðO.ðP 
‰D‘"ˆ:�t—y‘y¡"Ð%ðQ.ðR 
‰D�!ˆ9�d—i‘i¡Ð#ðS.ðT 
‰D�!ˆ9�d—i‘i¡Ð#ðU.ðV 
‰D‘!ˆ9�d—i‘i Ð$ðW.ðX 
‰D‘"ˆ:�t—y‘y¡"Ð%ðY.ðZ 
‰D‘"ˆ:�t—y‘y¡"Ð%ð[.Ð ñ` '0Ð0CÔ&DôFÙ&D™7˜1˜dð  $ q¡'×"2Ñ"2Ð!3±1°Q°q±S¸±U°GÐ<Ð=Ó=Ø&DòFÐ ñ .AóBÙ-@ ñ "¡#Ð&>ÀÓ"IÕJØ-@ñBÐ á Ð	"Õ #ùòYùòv UùòHùóPFùòBs'   ÄAZ*ÁB7AZ/ÁGAZ4ÁY)AZ9ÁZAZ?