
    ^Mhl              
       `   d dl Z d dlZd dlZd dlmZmZ d dlmc m	Z
 d dlmZ d dlmZmZmZmZmZ d dlmZmZmZ d dlmZmZ d dlmZ d dlmZ d	d
lmZ d Z d Z! e!e          Z" e!e          Z#d Z$d Z%d Z&d Z'd Z(d Z)g e$ddfe$ddfe$ddfe$ddfe$ddfe$ddfe$ddfe$d d!fe$d"d!fe$d#dfe$d$d%fe%dd&fe%dd'fe%dd'fe%dd(fe%dd&fe%dd&fe%dd)fe%d dfe%d"dfe%d#d*fe%d$dfe&ddfe&ddfe&ddfe&dd+fe&dd,fe&dd*fe&ddfe&d d-fe&d"d-fe&d#dfe&d$dfe'd.d)fe'd/dfe'd0dfe'd1dfe'd2dfe'd3d)fe'd4d)fe'd5d)fe'd6d+fe'd7d+fe'd8d+fe(d.d'fe(d/d(fe(d0d&fe(d1d+fe(d2d)fe(d3d&fe(d4d(fe(d5d(fe(d6d)fe(d7d)fe(d8d&fZ*eej+        ,                    d9          ej+        -                    d:d;<          ej+        -                    d=d><           G d? d@                                                          Z.eej+        ,                    d9          ej+        -                    d=d><          ej+        -                    d:d;<          ej+        -                    dAdB<           G dC dDe                                                                      Z/dS )E    N)statsspecial)array_api_compatible)array_namespaceis_cupyis_numpyxp_ravelxp_size)xp_assert_closexp_assert_equalxp_assert_less)find_minimum	find_root)_CHANDRUPATLA_TESTS)permutations   )TestScalarRootFindersc                       fd}|S )Nc                       fd}|S )Nc                      | d         j         }fd| D             } g }t          t          j        |                    D ](fd| D             }|                     |            )|S )Nr   c                 2    g | ]}t          |           S ))xp)r	   ).0	arg_arrayr   s     f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_chandrupatla.py
<listcomp>zB_vectorize.<locals>.decorator.<locals>.wrapped.<locals>.<listcomp>   s&    QQQ(9444QQQ    c                      g | ]
}|         S  r   )r   r   is     r   r   zB_vectorize.<locals>.decorator.<locals>.wrapped.<locals>.<listcomp>   s    HHH	y|HHHr   )shaperangemathprodappend)
arg_arraysr!   resarg_scalarsr    fr   s       @r   wrappedz._vectorize.<locals>.decorator.<locals>.wrapped   s    qM'EQQQQjQQQJC49U++,, , ,HHHHZHHH

11k?++++Jr   r   )r)   r*   r   s   ` r   	decoratorz_vectorize.<locals>.decorator   s)    	 	 	 	 	 	 r   r   )r   r+   s   ` r   
_vectorizer,      s$    
 
 
 
 
 r   c                       fd}|S )Nc                    h d}fd|D             }                     dd           t                    rfd}n} | |f||d}t          k    r)|j        \  |_        |_        |j        \  |_        |_        n4|j        \  |_        |_	        |_        |j        \  |_        |_
        |_        |j        |_        |`|`|`|S )N>   fatolfrtolxatolxrtolc                 D    i | ]}|v |                     |          S r   )pop)r   keykwargss     r   
<dictcomp>zE_wrap_chandrupatla.<locals>._chandrupatla_wrapper.<locals>.<dictcomp>4   s*    PPPs#--c6::c??---r   callbackc                    t           k    r)| j        \  | _        | _        | j        \  | _        | _        n4| j        \  | _        | _        | _        | j        \  | _        | _        | _        | j	        | _
        | `| `| `	 |           S N)r   bracketxlxr	f_bracketflfrxmfmf_xfun)r'   	_callbackfuncs    r   r8   zC_wrap_chandrupatla.<locals>._chandrupatla_wrapper.<locals>.callback7   s|    9$$%([NCFCF%(]NCFCFF-0[*CFCFCF-0]*CFCFCF'KMG y~~%r   )
tolerancesr8   )r4   callabler   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   )	r)   r;   r6   tol_keysrG   r8   r'   rE   rF   s	     `    @r   _chandrupatla_wrapperz1_wrap_chandrupatla.<locals>._chandrupatla_wrapper1   s   777PPPPhPPP
JJz400	I 	!& & & & & & & !Hd1gR*xRR6RR9 [NCFCF ]NCFCFF%(["CFCFCF%(]"CFCFCF'KMG
r   r   )rF   rJ   s   ` r   _wrap_chandrupatlarK   0   s%             B ! r   c                 H    dd| dz  z
  dz  z  d| dz  z
  z   dd| z
  dz  z  z   S )Nd   r         @          @r   xs    r   f1rS   Y   s7    ArE	A~1b5)AqsRiK77r   c                     d| dz
  dz  z   S )N   rP      r   rQ   s    r   f2rW   ]   s    B{?r   c                 V    t          |           }|                    |           d| z  z
  S )NrU   )r   exprR   r   s     r   f3r[   a   s'    			B66!99qs?r   c                 0    | dz  d| dz  z  z
  d| z  z
  dz   S )N      @rU   rN   g      4@r   rQ   s    r   f4r^   f   s&    b51QU7?SU"R''r   c                 6    d| dz  z  d| dz  z  z
  d| z  z
  dz   S )N      rO      r   rQ   s    r   f5rc   j   s*    QT6AadF?QqS 1$$r   c                     d}d} | |          } | |          }||z
  }||k    r||||| fn|||||f\  }}}}}t          |          D ])}||z  }||z   }	 | |	          }
|
|k     r||	||
f\  }}}}) |||	|||
fS )Ngw?rM   )r"   )rF   x1x2phimaxiterrS   rW   stepr    x3r[   s              r   _bracket_minimumrk   n   s    
CG	bB	bB7D79BwwRRdU33"$b"b$!7 BBD 7^^  $YT"XX77R^NBBr2r2r!!r         i   i   i   i   i   i i i    r`   rV   rb   	      
         皙gg333333ÿgɿg      пg333333ӿgffffffֿgٿgܿ      gskip_xp_backendsz	jax.numpyz*JAX arrays do not support item assignment.)reasonarray_api_strictz)Currently uses fancy indexing assignment.c            
           e Zd Zd Zej                            dd          ej                            dd ej        ddd          g          d	                         Z	ej                            d
 e
            dddg          d             Zd Zd Zd Zej                            de          d             Zej                            ddddgf          ej                            dd          d                         Zd Zd Zd ZdS )TestChandrupatlaMinimizec                     t          ||          }|                    d||z
  dz  z             d|j        z  dz  z  }|                    ||j                  d         S )Nr}   rO   g      ?dtyper   )r   rY   piasarrayr   )selfrR   locr   r'   s        r   r)   zTestChandrupatlaMinimize.f   s^    Q$$vvdaeaZ'(((AbeGc>9zz#QWz--b11r   r   float32float64r   333333?g?ry   c                    ddd         }t                    fddD             }                    |          }                                        t          j                            d                     |j                  }t          | j        g|R d|fi}t          |j
        ||	           t          |j        |           d S )
Ng{Gzt?gƠ>r   c              3   F   K   | ]}                     |           V  dS )r   N)r   )r   xir   r   s     r   	<genexpr>z6TestChandrupatlaMinimize.test_basic.<locals>.<genexpr>   s3      DD22::b:..DDDDDDr   r   rU   r   r   argsrtol)getattrr   broadcast_tor   normpdfr!   _chandrupatla_minimizer)   r   rR   r   rD   )r   r   r   r   r   r;   rD   r'   s     ``    r   
test_basicz#TestChandrupatlaMinimize.test_basic   s    
  D11%8E""DDDDDDDDjjEj**oobjj%*..*;*;);5jII39UU$TVCgCCCSFCCs....%%%%%r   r!   rx   ra      ra   rO   rO   c                 t    |r*|                     ddd                              |          n|                    d          }|f}|                    d          |                    d          |                    d          ft          |          }t	          |           fd            } fd	d
_        t          gR d|i} ||          }g d}	|	D ]k|                    fd|D                       }
t          t          |                    }t          ||
           t          |          j        |k    sJ lt          |j          j        |j        g|R             t          |j          j        |j        g|R             t          |j          j        |j        g|R             t          |j          j        |j        g|R             |                    |j                  j        k    sJ |                    |j                  j        dz
  k    sJ |                    |j        j        d          sJ |                    |j        j        d          sJ |                    |j        j        d          sJ |                    |j        j        d          sJ d S )Nr|   r   rx   r                 r]   c                 0    t          j        gR d| fiS )Nr   )r   r)   )
loc_singler;   r   s    r   chandrupatla_singlezHTestChandrupatlaMinimize.test_vectorization.<locals>.chandrupatla_single   s%    )$&O7OOO*OOOr   c                  >    xj         dz  c_          j        | i |S Nr   f_evalsr)   r   r6   r)   r   s     r   r)   z6TestChandrupatlaMinimize.test_vectorization.<locals>.f   )    IINII464*6***r   r   r   )rR   rD   successstatusnfevnitr<   rA   r=   r?   rB   r@   c                 0    g | ]}t          |          S r   )r   )r   refattrs     r   r   z?TestChandrupatlaMinimize.test_vectorization.<locals>.<listcomp>   s#    %I%I%ISgc4&8&8%I%I%Ir   ra   boolintegral)linspacereshaper   r   r,   r   r   stackr	   r   r   r!   rD   r)   rR   r?   r<   rB   rA   r@   r=   maxr   r   isdtyper   r   r   )r   r!   r   r   r   xp_testr   r'   refsattrsref_attrres_attrr   r;   r)   s   `           @@@r   test_vectorizationz+TestChandrupatlaMinimize.test_vectorization   s    >CWbkk%r**225999

SVv**S//2::b>>2::b>>A!#&&	B	P 	P 	P 	P 	P 
	P	+ 	+ 	+ 	+ 	+ 	+ 	$Q<<<<t<<""3''5 5 5 	5 	5D}}%I%I%I%ID%I%I%IJJHT 2 233HHh///3%%+u44444!5!5!5!5666sv 5 5 5 5666sv 5 5 5 5666sv 5 5 5 5666vvch19,,,,vvcg!)a-////s{0&99999sz/<<<<<sx~z:::::sw}j9999999r   c                    fd}                     dj                  f}                    dgdz  j                                      dgdz  j                                      t          j        gdz  j                  f}t          |g|R |dd}                    t          j        t          j	        t          j
        t          j        gj                  }t          |j        |           d S )Nc                 (   d d d fdg}g }t          t          |                    D ]R}| |df         }t          t          |          |                   }|                     ||         |                     S                    |          S )Nc                     | dz
  dz  S )N      @rO   r   rQ   s    r   <lambda>z@TestChandrupatlaMinimize.test_flags.<locals>.f.<locals>.<lambda>      CA~ r   c                     | dz
  S Nry   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_flags.<locals>.f.<locals>.<lambda>  
    q2v r   c                     | dz
  dz  S )Nr   r   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_flags.<locals>.f.<locals>.<lambda>	  r   r   c                 `                         |                     j                            S r:   	full_liker   nanrZ   s    r   r   z@TestChandrupatlaMinimize.test_flags.<locals>.f.<locals>.<lambda>
  s#    r||Arzz"&/A/ABB r   .)r"   r
   intr	   r%   r   )xsjsfuncsr'   r    rR   jr   s          r   r)   z.TestChandrupatlaMinimize.test_flags.<locals>.f  s    --%%--BBBBDE C72;;'' ( (q#vJQ((

858A;;''''88C== r   r   r   r   rO   ry   r   rh   )arangeint64r   r   npr   r   eim_ECONVERGED	_ESIGNERR	_ECONVERR
_EVALUEERRint32r   r   )r   r   r)   r   r;   r'   	ref_flagss    `     r   
test_flagsz#TestChandrupatlaMinimize.test_flags  s    
	! 
	! 
	! 
	! 
	! 		!28	,,.::qc!e2::66::qc!e2::66::rugairz:::< %QHHHtRHHHJJ # 079x  A A	
I.....r   c                 l   t           j                            d          }|                    |                    d                    }|                    d          |                    d          |                    d          f}|f}t	          |dddd          }|                                }d|d	<   t          | j        g|R i |}|                    |j	        |j
        z
            }	|                    d
|d	         z  |j                  }
t          |	|                    d|
|j                             d|d	<   t          | j        g|R i |}|                    |j	        |j
        z
            }|                    d
|d	         z  |j                  }
t          ||                    d|
|j                             t          ||	           |                                }d|d<   t          | j        g|R i |}|                    |j	        |j
        z
            }	|                    d
|d         z  |                    |j                  z  |j                  }
t          |	|
           d|d<   t          | j        g|R i |}|                    |j	        |j
        z
            }|                    d
|d         z  |                    |j                  z  |j                  }
t          ||
           t          ||	           |                                }d|d<   t          | j        g|R i |}|                    |j        d|j        z  z
  |j        z             }|                    d|d         z  |j                  }
t          ||                    d|
|j                             d|d<   t          | j        g|R i |}|                    |j        d|j        z  z
  |j        z             }|                    d|d         z  |j                  }
t          ||                    d|
|j                             t          ||           |                                }d|d<   t          | j        g|R i |}|                    |j        d|j        z  z
  |j        z             }|                    d|d         z  |                    |j                  z  |j                  }
t          ||
           d|d<   t          | j        g|R i |}|                    |j        d|j        z  z
  |j        z             }|                    d|d         z  t          |j                  z  |j                  }
t          ||
           t          ||           d S )N   FA92 ra   sizer   r   rU   r   r1   r2   r/   r0   MbP?r1   r   r   ra   ư>r2   r/   rO   r0   )r   randomdefault_rngr   dictcopyr   r)   absr=   r<   r   r   fullrR   r?   rB   r@   rD   )r   r   rngpr;   r   kwargs0r6   res1j1tolres2j2h1h2s                  r   test_convergencez)TestChandrupatlaMinimize.test_convergence  sH   i##$788JJszzqz))**::b>>2::a=="**Q--@tD!1EEEw%dfAwAAA&AAVVDGdg%&&jj6'?*!'j::r2774AG7<<===w%dfAwAAA&AAVVDGdg%&&jj6'?*!'j::r2774AG7<<===r2w%dfAwAAA&AAVVDGdg%&&jj6'?*266$&>>9jIIr3w%dfAwAAA&AAVVDGdg%&&jj6'?*266$&>>9jIIr3r2w%dfAwAAA&AAVVDGa$'k)DG344jj6'?*!'j::r2774AG7<<===w%dfAwAAA&AAVVDGa$'k)DG344jj6'?*!'j::r2774AG7<<===r2w%dfAwAAA&AAVVDGa$'k)DG344jj6'?*266$(+;+;;17jKKr3w%dfAwAAA&AAVVDGa$'k)DG344jj6'?*3tx==8jHHr3r2r   c                 "                         d                               d                               d                               d          fdt           j        gR fd}                    |j                  rJ                     |j        dz   k              sJ                     |j        k              sJ  fdj        _	        j        _
        d_        d _        t           j        gR fd	}|                                D ]a}|d
k    r1||         t          j        k    sJ ||         t          j        k    sJ 9||         j        |         cxk    r||         k    sn J bd S )N~,?r   r   rU   r   ra   c                 P   xj         dz  c_         | _        t          | d          sJ j         dk    r| j        | j        | j        fk    sJ n\| j        j        k    | j        j        k    z  }| j        j        k    | j        j        k    z  }                    ||z            sJ | j        _        | j        _        | j        t          j	        k    sJ t                              | j                  | j                   t                              | j                  | j                   t                              | j                  | j                   t                              | j                  | j                   j         k    rt"          d S Nr   rR   r   )iterr'   hasattrr<   rA   r=   allr   r   _EINPROGRESSr   r)   r?   rB   r@   rR   rD   StopIteration)	r'   
changed_xr
changed_xlr;   r8   r   rh   r   r   s	      r   r8   z@TestChandrupatlaMinimize.test_maxiter_callback.<locals>.callbackd  s~   MMQMMHL3$$$$$}!!/7:::::!f3(+8MN
!f3(+8MN
vvj:566666&HK&HK:!11111DFF363//888DFF363//888DFF363//888DFF35#..888}''## ('r   rl   r   r8   r   )r   r   r)   anyr   r   r   r   r   r<   r=   r   r'   keysr   r   
_ECALLBACK)	r   r   r'   r   r5   r;   r8   r   rh   s	   ``   @@@@r   test_maxiter_callbackz.TestChandrupatlaMinimize.test_maxiter_callbackX  s   jj""::b>>2::a=="**Q--@$TV 6g 6 6SF-46 6 666#+&&&&&vvch'!)+,,,,,vvcg()))))	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$, ff%df 9w 9 9cV/79 9 9
 88:: 	B 	BCh3x3=0000CyCN22222CyHL$5AAAASAAAAAAA	B 	Br   casec                 n   |\  }}}d}||z   }t          |||          \  }}}}	}
}d}d}d}d}|                    |          |                    |          |                    ||j                  f}t          |g|R ||||d}t	          |j        |                    ||j                             d S )Ng?g-C6?r   gؗҜ<r   )r1   r/   r2   r0   )rk   r   r   r   r   r   r   )r   r
  r   rF   re   r   ri   rf   rj   rS   rW   r[   r1   r/   r2   r0   r;   r'   s                     r   test_nit_expectedz*TestChandrupatlaMinimize.test_nit_expected  s    
 b# $Y!1$B!?!?BBB **R.."**R.."**Rrz*2R2RR$T LG L L5+0UL L LCrx!@!@AAAAAr   g?gffffff?float16r   r   c           	         t          |          |                    |          }|                    d          |                    d          |                    d          f}t          |          fd}t          |g|R d|fi}|j        j        k    sJ t          |j        |t          j        |	                              j
                             d S )Nr   r   rU   c                 V    | j         k    sJ                     | |z
  dz            S NrO   )r   astype)rR   r   r   r   s     r   r)   z.TestChandrupatlaMinimize.test_dtype.<locals>.f  s2    7e####>>1s7Q,666r   r   r   )r   r   r   r   rR   r   r   r#   sqrtfinfoeps)r   r   r   r   r;   r)   r'   r   s     `    @r   
test_dtypez#TestChandrupatlaMinimize.test_dtype  s    E""jjEj**::b:..::au:--::au:--/ "#&&	7 	7 	7 	7 	7 	7 %Q>>>>v>>u{e####s288E??3F)G)GHHHHHHr   c                    d}|                     d          |                     d          |                     d          f}t          j        t          |          5  t	          d g|R   d d d            n# 1 swxY w Y   d}|                     d          |                     d          |                     d          f}t          j        t          |          5  t	          d g|R   d d d            n# 1 swxY w Y   d	}|                     d
dg          |                     ddg          |                     g d          f}t          j        t          t
          f|          5  t	          d g|R   d d d            n# 1 swxY w Y   d}|                     ddg          |                     ddg          |                     ddg          f}t          j        t          |          5  t	          d g|R   d d d            n# 1 swxY w Y   d}|                     d          |                     d          |                     d          f}t          j        t          |          5  t	          d g|R ddi d d d            n# 1 swxY w Y   t          j        t          |          5  t	          d g|R d|j        i d d d            n# 1 swxY w Y   t          j        t          |          5  t	          d g|R ddi d d d            n# 1 swxY w Y   t          j        t          |          5  t	          d g|R d|j        i d d d            n# 1 swxY w Y   d}t          j        t          |          5  t	          d g|R ddi d d d            n# 1 swxY w Y   t          j        t          |          5  t	          d  g|R ddi d d d            n# 1 swxY w Y   d!}t          j        t          |          5  t	          d" g|R d#d$i d d d            d S # 1 swxY w Y   d S )%N`func` must be callable.rp   r   r   match3Abscissae and function output must be real numbers.            ?c                     | S r:   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>      Q r   z...be broadcast...rn   r  ra   r   rU   c                     | S r:   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>  r  r   z:The shape of the array returned by `func` must be the samerU   c                 0    | d         | d         | d         gS )N)r   .)r   .r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>  s    ai6AfI-N r   (Tolerances must be non-negative scalars.c                     | S r:   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>  r  r   r1   rl   c                     | S r:   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>  r  r   r2   c                     | S r:   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>  r  r   r/   ekkic                     | S r:   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>  r  r   r0   )`maxiter` must be a non-negative integer.c                     | S r:   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>  r  r   rh         ?c                     | S r:   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>  r  r   `callback` must be callable.c                     | S r:   r   rQ   s    r   r   z@TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>  r  r   r8   	shrubbery)r   pytestraises
ValueErrorr   RuntimeErrorr   )r   r   messager;   s       r   test_input_validationz.TestChandrupatlaMinimize.test_input_validation  s    -**R.."**Q--A>]:W555 	3 	3"42'2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 H**W%%rzz!}}bjjmmC]:W555 	: 	:";;99999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: '**b"X&&

Aq6(:(:BJJyyy<Q<QQ]J5WEEE 	: 	:";;99999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: O**b"X&&

Aq6(:(:BJJ1v<N<NN]:W555 	- 	-"#N#N -$+- - - -	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- =**R.."**Q--A>]:W555 	D 	D";;CCCCCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D]:W555 	H 	H";;GGGGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H]:W555 	H 	H";;GGGGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H]:W555 	H 	H";;GGGGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H >]:W555 	G 	G";;FFFF#FFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G]:W555 	F 	F";;EEEE"EEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 1]:W555 	P 	P";;OOOO;OOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps   A66A:=A:C77C;>C;*FF	F	1HHH2JJJ6KK K?LL!$L!M&&M*-M*N,,N03N0O00O47O4P77P;>P;c                 b   t          |                    d                    }|                    ddd          d d |j        f         }|                    t	          t          g d                              j        }t          | j        g|R d|fi}|	                    |
                    |j        |          |j        |                     ||          k    z            sJ |j        d d df         }t          |          }t          |                    |j        j        |          dd	i d S )
N      ?rl   r   rV   r   r   r   r   V瞯<)r   r   r   newaxislistr   Tr   r)   r   iscloserR   rD   r   broadcast_arrays)r   r   r   r   bracketsr'   r   s          r   test_bracket_orderz+TestChandrupatlaMinimize.test_bracket_order  s   !"**R..11kk"a##AAAw$67::d<


#;#;<<==?$TVDhDDDcVDDvvbjj,,466#s;K;K0KLMMMMMeAAAqDk!#&&11#%'3??LeLLLLLr   c                    t                              d                    fd}                    d                              d                              d          f}t          j        d          5  t	          |g|R ddd}d d d            n# 1 swxY w Y   |j        sJ t          |j                            d          d	
           t          |j                            d          d           d }                    d                              d                              d          f}t	          |g|R  }|j        sJ t          |j                            d                     d }                    d                              d                              d          f}t	          |g|R ddi}|j
        sJ |j        |k                |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d }                    d                              d                              d          f}                    d          }t	          |g|R d|fi}t          |j        |           fd}                    d                              d                              j                  f}t	          |g|R ddddd}|j        sJ |j
        |j        cxk     r|j        k     sn J  ||j
                   ||j                  cxk    r ||j                  k    sn J d S )Nr7  c                 N                         | j        d          sJ | dz
  dz  S )Nreal floatingr   rO   r   r   rR   r   s    r   r)   z6TestChandrupatlaMinimize.test_special_cases.<locals>.f  s-    ??17O<<<<<EA:r   r   r`   ignoreinvalid)r/   r0   r   r   r   gN~hatolc                     | dz
  dz  S Nr   rO   r   rQ   s    r   r)   z6TestChandrupatlaMinimize.test_special_cases.<locals>.f      aC!8Or   r   c                     | dz
  dz  S rL  r   rQ   s    r   r)   z6TestChandrupatlaMinimize.test_special_cases.<locals>.f  rM  r   r  g?rU   rh   ra   rn   c                     | |z
  dz  dz
  S )NrO   r   r   rR   cs     r   r)   z6TestChandrupatlaMinimize.test_special_cases.<locals>.f  s    aC!8a<r   rl   UUUUUU?r   c                 0                         |            S r:   )sinrZ   s    r   r)   z6TestChandrupatlaMinimize.test_special_cases.<locals>.f   s    FF1II:r   )r1   r2   r/   r0   )r   r   r   errstater   r   r   rR   rD   r   r<   r=   r   r   r   r   rA   )r   r   r)   r;   r'   rQ  r   s    `    @r   test_special_casesz+TestChandrupatlaMinimize.test_special_cases  s    ""**R..11	 	 	 	 	 **R.."**Q--A>[*** 	H 	H(GWGGAQGGGC	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H{rzz"~~D9999Bf====	 	 	 **Q--A

1=$Q1111{rzz"~~...	 	 	 **R.."**S//2::a==@$Q<<<<!<<v((sv((((w!||||x1}}}}zRu||||	  	  	  **R.."**Q--A>JJsOO$Q<<<<t<<q!!!	 	 	 	 	 **Q--A

250A0AA$QUUU!STUUU{v''''''''''qyyAAcfII22223622222222s   =BB"BN)__name__
__module____qualname__r)   r0  markparametrizer   r   r   tupler   r   r   r	  casesr  r  r5  r?  rV  r   r   r   r   r      s       2 2 2
 [W&<==[US+"+eT2*F*F$GHH& & IH >=& [Wuuwwvy&IJJ&: &: KJ&:R/ / /2: : :x2B 2B 2Bh [VU++B B ,+B, [UTD#;$788[W&GHHI I IH 98I$,P ,P ,P\	M 	M 	M83 83 83 83 83r   r   cupyzcupy/cupy#8391c            	          e Zd Zd Zej                            dd ej        ddd          g          d             Z	ej                            d e
            d	d
dg          d             Zd Zd Zd Zej                            de          d             Zej                            ddddgf          ej                            dd          d                         Zd Zd ZdS )TestChandrupatlac                 0    t          j        |          |z
  S r:   )r   ndtr)r   qr   s      r   r)   zTestChandrupatla.f5  s    |A""r   r   r   r|   r   ry   c                    |                     d          |                     d          }}t          | j        |||                     |          f          }|                     t          j                                        |          |                     |          j                  }t          |j        |           d S )Nr   r]   r   r   )	r   _chandrupatla_rootr)   r   r   ppfr   r   rR   )r   r   r   abr'   r   s          r   r   zTestChandrupatla.test_basic8  s     zz#

21 ARZZ]]4DEEEjj))!,,BJJqMM4GjHHs#####r   r!   r   r   r   c           
          |r)t          j        ddd                              |          nt          j        d          }|                    |          }|f}|j        }t          |          }t           j         fd            } fdd_        t          |                    d          |                    d	          |
          }	 ||          
                                }
d |
D             }|                    |                    ||          |          }t          |	j        |           d |
D             }|                    |                    ||          |          }t          |	j        |d           t          |	j          j        |	j        g|R             d |
D             }|                    |                    ||j                  |          }t          |	j        |           d |
D             }|                    |                    ||j                  |          }t          |	j        |           d |
D             }|                    |                    ||j                  |          }t)          |          r;t          |	j        |           |                    |	j                  j        k    sJ n)|	j        j        |k    sJ |	j        j        |j        k    sJ d |
D             }|                    |                    ||j                  |          }t)          |          r>t          |	j        |           |                    |	j                  j        dz
  k    sJ n)|	j        j        |k    sJ |	j        j        |j        k    sJ d |
D             }|                    |                    ||          |          }t          |	j        |           d |
D             }|                    |                    ||          |          }t          |	j        |           t7          |	j        |	j                   |                    |	j                  }|                    |	j        |         |	j        |         k    |	j        |         |	j        |         k    z            sJ t)          |          rdnd}d |
D             }|                    |                    ||          |          }t          |	j        ||           t          |	j          j        |	j        g|R             d |
D             }|                    |                    ||          |          }t          |	j        ||           t          |	j          j        |	j        g|R             |                    |                     |	j        |                   |!                    |                     |	j        |                   |                     |	j        |                             k              sJ d S )Nr|   r   rx   r   c                 6    t          j        dd| f          S )Nr   rU   re  )rf  r)   )r   r   s    r   r   z@TestChandrupatla.test_vectorization.<locals>.chandrupatla_singleK  s    %dfb!1$????r   c                  >    xj         dz  c_          j        | i |S r   r   r   s     r   r)   z.TestChandrupatla.test_vectorization.<locals>.fO  r   r   r   r   r]   re  c                     g | ]	}|j         
S r   rQ   r   r   s     r   r   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>W  s    '''3'''r   r   c                     g | ]	}|j         
S r   )rD   rn  s     r   r   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>[      +++s37+++r   r8  rI  c                 6    g | ]}t          |j                  S r   )r   r   rn  s     r   r   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>`  s"    999StCK((999r   c                     g | ]	}|j         
S r   )r   rn  s     r   r   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>d  s    ///3CJ///r   c                     g | ]	}|j         
S r   )r   rn  s     r   r   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>h  s    ---CH---r   c                     g | ]	}|j         
S r   )r   rn  s     r   r   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>q  rp  r   rO   c                     g | ]	}|j         
S r   )r<   rn  s     r   r   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>z      )))S#&)))r   c                     g | ]	}|j         
S r   )r=   rn  s     r   r   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>~  rv  r   g&.>c                     g | ]	}|j         
S r   )r?   rn  s     r   r   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>  rv  r   c                     g | ]	}|j         
S r   )r@   rn  s     r   r   z7TestChandrupatla.test_vectorization.<locals>.<listcomp>  rv  r   )"r   r   r   r   r   r   r   	vectorizer   rf  ravelr   rR   rD   r   r)   r   r   r   r   r   r   r   r!   r   r<   r=   r   isfiniter   r?   r@   r   minimum)r   r!   r   r   p_xpargs_xpr   r   r   r'   r   ref_xref_funref_successref_flagref_nfevref_nitref_xlref_xrfiniterJ  ref_flref_frr)   s   `                      @r   r   z#TestChandrupatla.test_vectorization@  s$    =B "R[b))11%888*S// 	
zz!}}'
!$''		@ 	@ 	@ 	@ 
	@	+ 	+ 	+ 	+ 	+ 	+ 	 BJJsOORZZ^^'RRR""1%%++--''$'''

2::e5:995AAu%%%++d+++**RZZuZ==uEEu5555!8!8!8!899999D999jjKw|!L!LeTT[111//$///::bjjjBBEJJ
H--------::bjjjBBEJJB<< 	.CHh///66#(##qy000008>U****8>RX----++d+++**RZZrxZ@@%HHB<< 	-CGW---66#'??aik111117=E))))7=BH,,,,))D)))BJJvUJ;;UCC'''))D)))BJJvUJ;;UCC'''svsv&&&SU##vvsuV}v6v#&.8: ; ; 	; 	; 	; !.uu$))D)))BJJvUJ;;UCCT2222sv 8 8 8 8999))D)))BJJvUJ;;UCCT2222sv 8 8 8 8999vvbffSWV_--jjv!7!7!#v!7!79 99 : : 	: 	: 	: 	: 	:r   c                    fd}                     dj                  f}                    dgdz                                j        gdz            }}t	          ||||d          }                    t
          j        t
          j        t
          j        t
          j	        gj
                  }t          |j        |           d S )Nc                     |j         j        k    sJ t                    r(d d d fdgfdt          | |          D             S d d d fd	gfd
t          | |          D             S )Nc                     | dz
  S Nr   r   rQ   s    r   r   z8TestChandrupatla.test_flags.<locals>.f.<locals>.<lambda>  s
    1s7 r   c                     | dz
  S r   r   rQ   s    r   r   z8TestChandrupatla.test_flags.<locals>.f.<locals>.<lambda>  s
    1r6 r   c                     | dz
  dz  S N皙?ra   r   rQ   s    r   r   z8TestChandrupatla.test_flags.<locals>.f.<locals>.<lambda>  s    AGa< r   c                 `                         |                     j                            S r:   r   rZ   s    r   r   z8TestChandrupatla.test_flags.<locals>.f.<locals>.<lambda>  s#    2<<2::bf3E3E#F#F r   c                 R    g | ]#\  }} t          |                   |          $S r   )r   r   rR   r   r   s      r   r   z:TestChandrupatla.test_flags.<locals>.f.<locals>.<listcomp>  s1    AAATQc!ffa((AAAr   c                     | dz
  S r  r   rQ   s    r   r   z8TestChandrupatla.test_flags.<locals>.f.<locals>.<lambda>  s
    q3w r   c                     | dz
  S r   r   rQ   s    r   r   z8TestChandrupatla.test_flags.<locals>.f.<locals>.<lambda>  r   r   c                     | dz
  dz  S r  r   rQ   s    r   r   z8TestChandrupatla.test_flags.<locals>.f.<locals>.<lambda>  r   r   c                     j         S r:   )r   rZ   s    r   r   z8TestChandrupatla.test_flags.<locals>.f.<locals>.<lambda>  s	    rv r   c                 8    g | ]\  }} |         |          S r   r   r  s      r   r   z:TestChandrupatla.test_flags.<locals>.f.<locals>.<listcomp>  s)    888DAqHE!HQKK888r   )r   r   r   zip)r   r   r   r   s     @r   r)   z&TestChandrupatla.test_flags.<locals>.f  s     8rx''''r{{ B**))//FFFFH BAAASR[[AAAA&&%%--%%%%'E 9888CBKK8888r   r   r   r   rO   r   )r   r   r   r   rf  r   r   r   r   r   r   r   r   )r   r   r)   r   rh  ri  r'   r   s    `      r   r   zTestChandrupatla.test_flags  s    	9 	9 	9 	9 	9$ 		!28	,,.zz2$q&!!2::rugai#8#81 AqtQ???JJ # # # 0 8:x  A A	 	
I.....r   c           	      	   t           j                            d          }|                    |                    d                    }|                    d           |                    d          f}|f}t	          |dddd          }|                                }d|d<   t          | j        g|R i |}t          |j	        |j
        z
  |                    ||                    d                               d	|d<   t          | j        g|R i |}	t          |	j	        |	j
        z
  |                    ||                    d	                               t          |	j	        |	j
        z
  |j	        |j
        z
             |                                }d|d
<   t          | j        g|R i |}t          |j	        |j
        z
  d|                    |j                  z             d	|d
<   t          | j        g|R i |}	t          |	j	        |	j
        z
  d	|                    |	j                  z             t          |	j	        |	j
        z
  |j	        |j
        z
             |                                }d|d<   t          | j        g|R i |}t          |                    |j                  |                    ||                    d                               d	|d<   t          | j        g|R i |}	t          |                    |	j                  |                    ||                    d	                               t          |                    |	j                  |                    |j                             |                                }d|d<   |\  }
}|                    |                     | j        |
g|R            |                     | j        |g|R                      }t          | j        g|R i |}t          |                    |j                  d|z             d	|d<   t          | j        g|R i |}	t          |                    |	j                  d	|z             t          |                    |	j                  |                    |j                             d S )Nr   ra   r   r]   r   r   r   r1   r   r2   r/   r0   )r   r   r   r   r   r   rf  r)   r   r=   r<   r   r   rR   rD   r}  )r   r   r   r   r;   r   r   r6   r   r   re   rf   f0s                r   r   z!TestChandrupatla.test_convergence  sV   i##$788JJszzqz))**JJrNN?BJJrNN3tD!1EEEw!$&=7===f==tw(",,q"**T:J:J*K*KLLLw!$&=7===f==tw(",,q"**T:J:J*K*KLLLtw($'DG*;<<<w!$&=7===f==tw($*?@@@w!$&=7===f==tw($*?@@@tw($'DG*;<<<w!$&=7===f==rvvdh''aD9I9I)J)JKKKw!$&=7===f==rvvdh''aD9I9I)J)JKKKrvvdh'')9)9:::wBZZvtvb0400011266&$&:Kd:K:K:K3L3LMM!$&=7===f==rvvdh''b111w!$&=7===f==rvvdh''b111rvvdh'')9)9:::::r   c                    	                      d          	                     d                               d          fdfdd _        d _        t          gR 	fd}                    |j                  rJ                     |j        dz   k              sJ                     |j        k              sJ 	 fdd	_	        d _
        d _        d _        t          gR 	fd
}|                                D ]}|dk    rut          ||                              t          j        j                             t          ||                              t          j        j                             }|                    d          rt          ||         ||                    d S )Nr   r   r]   rU   c                 R    t          j        |           |z
  }| _        |_        |S r:   )r   rb  rR   rD   )rc  r   r'   r)   s      r   r)   z1TestChandrupatla.test_maxiter_callback.<locals>.f  s(    ,q//A%CACAEJr   r   rO   c                    xj         dz  c_         | _        t          | d          sJ j         dk    r| j        | j        fk    sJ nZ| j        j        k    | j        j        k    z  | j        j        k    | j        j        k    z  z  }                    |          sJ | j        _        | j        _        | j        t          j        k    sJ t          
                    | j                  | j                   t          
                    | j                  | j                   t          
                    | j                  | j                   j         k    rt          d S r   )r   r'   r   r<   r=   r   r   r   r  r   r)   r?   r@   rR   rD   r  )r'   changedr;   r8   rh   r   r   r   s     r   r8   z8TestChandrupatla.test_maxiter_callback.<locals>.callback  sU   MMQMMHL3$$$$$}!!'722222 Vx{2sv7LM"v48;9NOQvvg&&&&HK&HK:!11111DFF361--sv666DFF361--sv666DFF35!,,cg666}''## ('r   rl   r  r   r   _)r   rR   rD   rf  r  r   r   r   r   r   r'   r<   r=   r  r   r   r   r   r  
startswith)
r   r   r'   r   r5   r;   r8   r)   rh   r   s
   ``   @@@@@r   r	  z&TestChandrupatla.test_maxiter_callback  s   JJx  ::c??BJJrNN3	 	 	 	 	
  IWIIA4III66#+&&&&&vvch'!)+,,,,,vvcg()))))	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$( !!LgLLQD8LLL 88:: 	5 	5ChC"**S]"(**S*STTTS	2::cnBH:+U+UVVVV$$ 5S	3s84444	5 	5r   r
  c                    |\  }}}}}|                     |d         |j                  |                     |d         |j                  f}|                     ||j                  }t          |g|R ddd}t          |j        |                      ||          |j                  dd	           t          |j        |                     ||j                             d S )
Nr   r   r   g|=gh㈵>)r2   r1   g:0yE>gMb`?)r   rJ  )r   r   rf  r   rD   r   r   r   )	r   r
  r   r)   r;   rootnfevalidr'   s	            r   r  z"TestChandrupatla.test_nit_expected  s    
 (,$7D&"
 ::gaj
:;;::gaj
:;;=zz$bjz11 FWFFEFFFAAdGG2:!F!F!	. 	. 	. 	."**V28*"D"DEEEEEr   r  gCl?gV-?r   r  c                 ,   t                     }|rdk    rt          j        d           t          d           t          j         d            fd}                    d                              d          }}                    |          }t          ||||fd	          }	 t          |j        |d
           d S # t          $ r4 |j        j	        k    sJ 
                    |j        dk               Y d S w xY w)Nr  z0`float16` dtype only supported for NumPy arrays.z does not support c                 d    | |z
  dz  }t                    r                    |          S |S )NrN   r   )r   r   )rR   r  r'   r   r   s      r   r)   z&TestChandrupatla.test_dtype.<locals>.f=  s:    t8"C|| 4zz#Uz333Jr   r  r   ra   r   )r   r1   rI  r   )r   r0  skipr   r   rf  r   rR   AssertionErrorr   r   rD   )	r   r  r   r   	not_numpyr)   rh  ri  r'   s	     ``     r   r  zTestChandrupatla.test_dtype1  sW    !$	 	L)++KJKKKE4((=K28888999	 	 	 	 	 	 zz"Ez**BJJqJ,F,F1zz$ez,, AqwdCCC	!CE4d333333 	! 	! 	!5;%''''FF37a<      	!s   <C :DDc                    d }d}t          j        t          |          5  |                    d          |                    d          f}t	          d g|R   d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    d          |                    d          f}t	          |g|R   d d d            n# 1 swxY w Y   d}t          j        t          t
          f|          5  |                    d	d
g          |                    g d          f}t	          |g|R   d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    d
d
g          |                    ddg          f}t	          d g|R   d d d            n# 1 swxY w Y   d}|                    d          |                    d          f}t          j        t          |          5  t	          |g|R ddi d d d            n# 1 swxY w Y   t          j        t          |          5  t	          |g|R d|j        i d d d            n# 1 swxY w Y   t          j        t          |          5  t	          |g|R ddi d d d            n# 1 swxY w Y   t          j        t          |          5  t	          |g|R d|j        i d d d            n# 1 swxY w Y   d}t          j        t          |          5  t	          |g|R ddi d d d            n# 1 swxY w Y   t          j        t          |          5  t	          |g|R ddi d d d            n# 1 swxY w Y   d}t          j        t          |          5  t	          |g|R ddi d d d            d S # 1 swxY w Y   d S )Nc                     | S r:   r   rQ   s    r   rF   z4TestChandrupatla.test_input_validation.<locals>.funcO  s    Hr   r  r  rp   r   r  r  z...not be broadcast...rn   r  r   z,The shape of the array returned by `func`...rU   c                 0    | d         | d         | d         gS )Nr   r   r   rQ   s    r   r   z8TestChandrupatla.test_input_validation.<locals>.<lambda>e  s    !A$!ad); r   r#  r1   rl   r2   r/   r'  r0   r)  rh   r+  r-  r8   r/  )r0  r1  r2  r   rf  r3  r   )r   r   rF   r4  r;   s        r   r5  z&TestChandrupatla.test_input_validationL  s   	 	 	 -]:W555 	/ 	/jjnnbjjmm3Gt.g....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ H]:W555 	/ 	/jj''A6Gt.g....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
 +]J5WEEE 	/ 	/jj"b**BJJyyy,A,AAGt.g....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ A]:W555 	G 	Gjj"b**BJJ1v,>,>>G;;FgFFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G =**R.."**Q--/]:W555 	9 	9t8g888R888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9]:W555 	= 	=t<g<<<RV<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=]:W555 	= 	=t<g<<<V<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=]:W555 	= 	=t<g<<<RV<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= >]:W555 	< 	<t;g;;;s;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<]:W555 	; 	;t:g:::r:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 1]:W555 	E 	EtDgDDDDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   8A%%A),A)8CCC <EEE0=F99F= F=H((H,/H,I00I47I4J33J7:J7K;;K?K?#M  MM&NN
N+O		OOc                 
   d }|                     g d          |                     g d          }}t          j        dd          5  t          |||          }d d d            n# 1 swxY w Y   |                    |j                  sJ t          |j        dd          |                    d|j        d                              t          |          fd	}t          ||                     d
          |                     d                    }|j        sJ t          |j        |                     d                     d }|                     ddg          }t          ||                     d          |                     d          |f          }t          |j        |                     ddg                     t          |j        |                     |j        dg                     d }t          j        d          5  |                     |j                  }t          |||          }d d d            n# 1 swxY w Y   |j        sJ t          |j        |                     |j                             d }|                     d          |                     d          }}t          |||d          }t          |j        |                     d                     t          |j        |                     d|j                             t          |j        |                     d|j                             t          |j        |                     d|j                             t          |j        |           t          |j        |           t          |j        |           t          || | d          }t          |j        |            t          |||d          }t          |j        |                     d                     t          |j        |                     d|j                             t          |j        |                     d|j                             t          |j        |                     d|j                             t          |j        |                     d                     d }t          ||                     d          |                     d          |                     d                    }t          |j        |                     d                     d S )Nc                 &    d| z  dz   d|  dz   z  z
  S r   r   rQ   s    r   r)   z.TestChandrupatla.test_special_cases.<locals>.f  s    q519qQBF|++r   )r  r   r   r  )?r7  r  r7  rF  )dividerH  r   r   r   c                 N                         | j        d          sJ | dz  dz
  S )NrB     r   rC  rD  s    r   r)   z.TestChandrupatla.test_special_cases.<locals>.f  s-    ??17O<<<<<7Q;r   rE  rU   r7  c                     | dz  |z
  S r  r   )rR   r  s     r   r)   z.TestChandrupatla.test_special_cases.<locals>.f  s    a4$;r   re  FTc                     d| z  S r   r   rQ   s    r   r)   z.TestChandrupatla.test_special_cases.<locals>.f  s    Q3Jr   rG  c                     | dz  dz
  S )Nra   r   r   rQ   s    r   r)   z.TestChandrupatla.test_special_cases.<locals>.f  s    a4!8Or   g      r]   )rh   rn   r   rO   ra   c                     || z  dz
  S r   r   rP  s     r   r)   z.TestChandrupatla.test_special_cases.<locals>.f  s    Q37Nr   rl   rR  )r   r   rU  rf  r   r   r   rR   r   r   r   r   infr   r   r   r   r<   r=   )	r   r   r)   rh  ri  r'   r  r  r   s	           @r   rV  z#TestChandrupatla.test_special_cases|  s>   	, 	, 	, zz,,,--

;O;O;O0P0P1[(;;; 	. 	.$Q1--C	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. vvck"""""abb	2774q#:#:;;; "!$$	 	 	 	 	 !BJJrNNBJJqMMBB{rzz"~~...	 	 	 zz1a&!! BJJqMM2::a==wOOORZZ%>%>???rzz262,77888	 	 	 [*** 	2 	2**RV$$C$QS11C	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 {rzz"&11222	 	 	 zz#

21 Aq!444RZZ%6%6777
BJJrJ$B$BCCCARX!>!>???"**Qbh*"?"?@@@""""""q!!! QBA666r""" !Aq!444RZZ%5%5666
BJJqJ$A$ABBBARX!>!>???"**Qbh*"?"?@@@rzz"~~...	 	 	 !BJJrNNBJJqMM

STVVVrzz#/////s$   	A''A+.A+,II
IN)rW  rX  rY  r)   r0  rZ  r[  r   r   r   r\  r   r   r   r	  r   r  r  r5  rV  r   r   r   r`  r`  +  s       # # # [S3E4(D(D"EFF$ $ GF$ [Wuuwwvy&IJJU: U: KJU:n/ / />,; ,; ,;\75 75 75r [V%899F F :9F$ [VeeU^%<==[W&GHH! ! IH >=!2.E .E .E`N0 N0 N0 N0 N0r   r`  )0r#   r0  numpyr   scipyr   r   (scipy._lib._elementwise_iterative_method_lib_elementwise_iterative_methodr   scipy.conftestr   scipy._lib._array_apir   r   r   r	   r
   scipy._lib._array_api_no_0dr   r   r   scipy.optimize.elementwiser   r   scipy.optimize._tstutilsr   	itertoolsr   
test_zerosr   r,   rK   rf  r   rS   rW   r[   r^   rc   rk   r]  rZ  usefixturesr~   r   r`  r   r   r   <module>r     s                         6 6 6 6 6 6 6 6 6 / / / / / / W W W W W W W W W W W W W W9 9 9 9 9 9 9 9 9 9 ? > > > > > > > 8 8 8 8 8 8 " " " " " " - - - - - -  :"! "! "!J ('	22 ++L99 8 8 8    
( ( (% % %" " "(8	RL8	RL8	 RL8	 RL	8	
 bM8	 bM8	 bM8	 rN8	 rN8	 rN8	 O8	 QK8	 QK8	 QK8	 QK8	  aL!8	" aL#8	$ aL%8	& rN'8	( rN)8	* rN+8	, O-8	. RL/8	0 RL18	2 RL38	4 RL58	6 bM78	8 bM98	: bM;8	< rN=8	> rN?8	@ rNA8	B OC8	D NE8	F OG8	H OI8	J OK8	L OM8	N NO8	P NQ8	R NS8	T OU8	V OW8	X OY8	Z N[8	\ N]8	^ N_8	` Oa8	b Nc8	d Ne8	f Ng8	h Ni8	j Nk8	l Nm8	n No8	v +,,k%Q  S S0%P  R Re3 e3 e3 e3 e3 e3 e3R RS S -, e3P +,,0%P  R Rk%Q  S Sf%5  7 7W0 W0 W0 W0 W0, W0 W07 7S SR R -, W0 W0 W0r   