Ë
    âQ(hN
  ã                   ó´   — d Z ddlmZ ddlmZ  ed„  ed«      D «       «      ZdZ	d\  Z
Zd\  ZZZeD � cg c]  } |  d	z  ‘Œ
 c} Zd
„ Zd„ Zd„ Zd„ Zd„ Zyc c} w )a8  
Test Cython optimize zeros API functions: ``bisect``, ``ridder``, ``brenth``,
and ``brentq`` in `scipy.optimize.cython_optimize`, by finding the roots of a
3rd order polynomial given a sequence of constant terms, ``a0``, and fixed 1st,
2nd, and 3rd order terms in ``args``.

.. math::

    f(x, a0, args) =  ((args[2]*x + args[1])*x + args[0])*x + a0

The 3rd order polynomial function is written in Cython and called in a Python
wrapper named after the zero function. See the private ``_zeros`` Cython module
in `scipy.optimize.cython_optimze` for more information.
é    N)Ú_zerosc              #   ó,   K  — | ]  }d |dz  z
  –— Œ y­w)g       Àg      $@N© )Ú.0Úxs     úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_cython_optimize.pyú	<genexpr>r	      s   è ø€ Ò
,˜Qˆ4�!�D‘&�=Ñ
,ùs   ‚é
   )ç        r   g      ð?)r   g       @)çü©ñÒMbP?r   r
   gUUUUUUÕ?c                  óÌ   — t        j                  t        t        t	        j
                  dt        t        t        t        t        t        t        «      «      t        t        ¬«       y )NÚbisect©ÚrtolÚatol©ÚnptÚassert_allcloseÚEXPECTEDÚlistr   Úloop_exampleÚA0ÚARGSÚXLOÚXHIÚXTOLÚRTOLÚMITRr   ó    r   Útest_bisectr    *   ó>   € Ü×ÑÜÜÜ×Ñ ¬"¬d´C¼¼dÄDÌ$ÓOó	
ô œör   c                  óÌ   — t        j                  t        t        t	        j
                  dt        t        t        t        t        t        t        «      «      t        t        ¬«       y )NÚridderr   r   r   r   r   Útest_ridderr$   5   r!   r   c                  óÌ   — t        j                  t        t        t	        j
                  dt        t        t        t        t        t        t        «      «      t        t        ¬«       y )NÚbrenthr   r   r   r   r   Útest_brenthr'   @   r!   r   c                  óÌ   — t        j                  t        t        t	        j
                  dt        t        t        t        t        t        t        «      «      t        t        ¬«       y )NÚbrentqr   r   r   r   r   Útest_brentqr*   K   r!   r   c                  ój  — t        j                  t        d   ft        z   t        t
        t        t        t        «      } t        j                  t        d   | d   t        t        ¬«       t        j                  d| d   «       t        j                  d| d   «       t        j                  d| d   «       y )	Nr   Úrootr   é   Ú
iterationsé   ÚfuncallsÚ	error_num)r   Úfull_output_exampler   r   r   r   r   r   r   r   r   r   Úassert_equal)Úoutputs    r   Útest_brentq_full_outputr5   V   s„   € Ü×'Ñ'Ü	ˆA‰ˆ”4‰œœc¤4¬¬tó5€Fä×Ñœ ™ V¨F¡^¼$ÄTÕJÜ×Ñ�Q˜˜|Ñ,Ô-Ü×Ñ�Q˜˜zÑ*Ô+Ü×Ñ�Q˜˜{Ñ+Õ,r   )Ú__doc__Únumpy.testingÚtestingr   Úscipy.optimize.cython_optimizer   ÚtupleÚranger   r   r   r   r   r   r   r   r    r$   r'   r*   r5   )Úa0s   0r   ú<module>r=      sx   ðñõ Ý 1ñ Ñ
,¡%¨£)Ô
,Ó,€Ø€Ø�€€Sà#Ñ €€dˆDØ)+Ö, 2ˆbˆS�gÓÒ,€òòòòó-ùòu -s   µA