
    ^MhN
                         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d	 eD             Zd
 Zd Zd Zd Zd ZdS )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
  V  dS )g       g      $@N ).0xs     i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_cython_optimize.py	<genexpr>r	      s*      
,
,Q4!D&=
,
,
,
,
,
,    
   )        r   g      ?)r   g       @)MbP?r   r   c                     g | ]}| d z  	S )gUUUUUU?r   )r   a0s     r   
<listcomp>r      s    ,,,2bSg,,,r
   c                      t          j        t          t          t	          j        dt          t          t          t          t          t          t                              t          t                     d S )Nbisectrtolatolnptassert_allcloseEXPECTEDlistr   loop_exampleA0ARGSXLOXHIXTOLRTOLMITRr   r
   r   test_bisectr#   *   Y    "dCdD$OO	
 	
      r
   c                      t          j        t          t          t	          j        dt          t          t          t          t          t          t                              t          t                     d S )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                     d S )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                     d S )Nbrentqr   r   r   r
   r   test_brentqr-   K   r$   r
   c                     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                    d S )	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_outputr8   V   s    '	A4c4t5 5FVF^$TJJJ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-   r8   r   r
   r   <module>r?      s           1 1 1 1 1 1 U
,
,%%))
,
,
,,,S# dD,,,,,        - - - - -r
   