
    doi                     v   S SK r S SKrS SKrS SKJr  S SKJrJr  S SK	J
s  Jr  S SKJ
s  Jr  S SKJrJrJrJrJrJr  S SKJrJrJr  S SKJrJr  S SKJr  S SK J!r!  S	 r"S
 r#\#" \5      r$S r%S r&S r'S r(S r)S r*/ \%SS4P\%SS4P\%SS4P\%SS4P\%SS4P\%SS4P\%SS4P\%SS4P\%S S4P\%S!S4P\%S"S#4P\&SS$4P\&SS%4P\&SS%4P\&SS&4P\&SS$4P\&SS$4P\&SS'4P\&SS4P\&S S4P\&S!S(4P\&S"S4P\'SS4P\'SS4P\'SS4P\'SS)4P\'SS*4P\'SS(4P\'SS4P\'SS+4P\'S S+4P\'S!S4P\'S"S4P\(S,S'4P\(S-S4P\(S.S4P\(S/S4P\(S0S4P\(S1S'4P\(S2S'4P\(S3S'4P\(S4S)4P\(S5S)4P\(S6S)4P\)S,S%4P\)S-S&4P\)S.S$4P\)S/S)4P\)S0S'4P\)S1S$4P\)S2S&4P\)S3S&4P\)S4S'4P\)S5S'4P\)S6S$4Pr+\" \5       " S7 S85      5       r,\" \5       " S9 S:5      5       r-g);    N)deepcopy)statsspecial)array_namespaceis_cupyis_numpyxp_ravelxp_sizemake_xp_test_case)xp_assert_closexp_assert_equalxp_assert_less)find_minimum	find_root)_CHANDRUPATLA_TESTS)permutationsc                    ^  U 4S jnU$ )Nc                    >^  U U4S jnU$ )Nc                    > U S   R                   nU  Vs/ s H  n[        UTS9PM     n n/ n[        [        R                  " U5      5       H+  nU  Vs/ s H  o"U   PM	     nnUR                  T" U6 5        M-     U$ s  snf s  snf )Nr   )xp)shaper	   rangemathprodappend)
arg_arraysr   	arg_arrayresiarg_scalarsfr   s         b/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_chandrupatla.pywrapped._vectorize.<locals>.decorator.<locals>.wrapped   s    qM''EFPQj(94jJQC499U+,=GHZ	|ZH

1k?+ - J R Is   A=B )r!   r#   r   s   ` r"   	decorator_vectorize.<locals>.decorator   s    	     r%   )r   r&   s   ` r"   
_vectorizer)      s    
 r(   c                    ^  U 4S jnU$ )Nc                   >^ 1 SknU Vs0 s H  oDU;   d  M
  XBR                  U5      _M     nnUR                  SS 5      m[        T5      (       a  UU	4S jnOTnT	" X4XVS.UD6nT	[        :X  a3  UR                  u  Ul        Ul        UR                  u  Ul        Ul        O>UR                  u  Ul        Ul	        Ul        UR                  u  Ul        Ul
        Ul        UR                  Ul        U?U?U?U$ s  snf )N>   fatolfrtolxatolxrtolcallbackc                 8  > T[         :X  a3  U R                  u  U l        U l        U R                  u  U l        U l        O>U R                  u  U l        U l        U l        U R                  u  U l        U l        U l        U R                  U l
        U ?U ?U ?	T" U 5      $ N)r   bracketxlxr	f_bracketflfrxmfmf_xfun)r   	_callbackfuncs    r"   r0   C_wrap_chandrupatla.<locals>._chandrupatla_wrapper.<locals>.callback8   s}    9$%([[NCFCF%(]]NCFCF-0[[*CFCFCF-0]]*CFCFCF''KMG ~%r(   )
tolerancesr0   )popcallabler   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   )
r!   r3   kwargstol_keyskeyr@   r0   r   r=   r>   s
           @r"   _chandrupatla_wrapper1_wrap_chandrupatla.<locals>._chandrupatla_wrapper2   s    76>Phs-*c::c?*h
PJJz40	I& !H1R*R6R9 [[NCFCF ]]NCFCF%([["CFCFCF%(]]"CFCFCF''KMG
; Qs
   	C:C:r%   )r>   rF   s   ` r"   _wrap_chandrupatlarH   1   s     B ! r(   c                 H    SSU S-  -
  S-  -  SU S-  -
  -   SSU -
  S-  -  -   $ )Nd            @          @r%   xs    r"   f1rQ   Y   s7    ArE	A~1b5)AqsRiK77r(   c                     SU S-
  S-  -   $ )N   rN      r%   rO   s    r"   f2rU   ]   s    B{?r(   c                 F    [        U 5      nUR                  U 5      SU -  -
  $ )NrS   )r   exprP   r   s     r"   f3rY   a   s"    		B66!9qs?r(   c                 0    U S-  SU S-  -  -
  SU -  -
  S-   $ )N      @rS   rL   g      4@r%   rO   s    r"   f4r\   f   s&    b51QU7?SU"R''r(   c                 6    SU S-  -  SU S-  -  -
  SU -  -
  S-   $ )N      rM      r%   rO   s    r"   f5ra   j   s*    QT6AadF?QqS 1$$r(   c                     SnSnU " U5      nU " U5      nX!-
  nXe:  a  X!XeU* 4OXXVU4u  ppVn[        U5       H!  nXs-  nX'-   n	U " U	5      n
X:  a	  X)Xj4u  ppVM!    O   XW	XVW
4$ )Ngw?rJ   )r   )r>   x1x2phimaxiterrQ   rU   stepr   x3rY   s              r"   _bracket_minimumri   n   s    
CG	bB	bB7D79wRRdU3"$"$!7 BBD 7^Y"X7R^NBB  2rr!!r(         i   i   i   i   i   i i i    r^   rT   r`   	      
         皙gg333333ÿgɿg      пg333333ӿgffffffֿgٿgܿ      gc            
          \ rS rSrS r\R                  R                  SS5      \R                  R                  SS\R                  " SSS	5      /5      S
 5       5       r
\R                  R                  S\" 5       SSS/5      S 5       rS rS rS r\R                  R                  S\5      S 5       r\R                  R                  SSSS/45      \R                  R                  SS5      S 5       5       rS rS rS rSrg)TestChandrupatlaMinimize   c                     [        X5      nUR                  SX-
  S-  -  5      * SUR                  -  S-  -  nUR                  XAR                  S9S   $ )Nr{   rM   g      ?dtyper%   )r   rW   piasarrayr   )selfrP   locr   r   s        r"   r!   TestChandrupatlaMinimize.f   sS    Q$vvdaeaZ'((AbeeGc>9zz#WWz-b11r(   r   float32float64r   333333?g?rw   c                   ^^ SSS.T   n[        TT5      mUU4S jS 5       nTR                  UTS9nTR                  TR                  [        R                  R                  S5      * TS9UR                  5      n[        U R                  /UQ7SU406n[        UR                  XS	9  [        UR                  U5        g )
Ng{Gzt?gƠ>r   c              3   D   >#    U  H  nTR                  UTS 9v   M     g7f)r   N)r   ).0xir   r   s     r"   	<genexpr>6TestChandrupatlaMinimize.test_basic.<locals>.<genexpr>   s     D22::b:.s    r   rS   r   r   argsrtol)getattrr   broadcast_tor   normpdfr   _chandrupatla_minimizer!   r   rP   r   r<   )r   r   r   r   r   r3   r<   r   s     ``    r"   
test_basic#TestChandrupatlaMinimize.test_basic   s    
  D1%8E"DDjjEj*oobjj%**..*;);5jI399U$TVVCgCSFCs.%r(   r   rv   r_      r_   rM   rM   c           
        ^ ^^ U(       a"  UR                  SSS5      R                  U5      OUR                  S5      nU4nUR                  S5      UR                  S5      UR                  S5      4m[        U5      UU 4S j5       nUU 4S	 jmS
Tl        [        T/TQ7SU06nU" U5      n/ SQnU Hh  n	UR                  U V
s/ s H  n
[        X5      PM     sn
5      n[        [        Xi5      5      n[        X5        [        Xi5      R                  U:X  a  Mh   e   [        UR                  T R                  " UR                  /UQ76 5        [        UR                  T R                  " UR                  /UQ76 5        [        UR                   T R                  " UR"                  /UQ76 5        [        UR$                  T R                  " UR&                  /UQ76 5        UR)                  UR*                  5      TR                  :X  d   eUR)                  UR,                  5      TR                  S-
  :X  d   eUR/                  UR0                  R2                  S5      (       d   eUR/                  UR4                  R2                  S5      (       d   eUR/                  UR*                  R2                  S5      (       d   eUR/                  UR,                  R2                  S5      (       d   eg s  sn
f )Nrz   r   rv   r                 r[   c                 8   > [        TR                  /TQ7SU 406$ )Nr   )r   r!   )
loc_singler3   r   s    r"   chandrupatla_singleHTestChandrupatlaMinimize.test_vectorization.<locals>.chandrupatla_single   s    )$&&O7O*OOr(   c                  R   > T=R                   S-  sl         TR                  " U 0 UD6$ NrK   f_evalsr!   r   rC   r!   r   s     r"   r!   6TestChandrupatlaMinimize.test_vectorization.<locals>.f   $    IINI664*6**r(   r   r   )rP   r<   successstatusnfevnitr4   r9   r5   r7   r:   r8   r_   boolintegral)linspacereshaper   r)   r   r   stackr   r	   r   r   r<   r!   rP   r7   r4   r:   r9   r8   r5   maxr   r   isdtyper   r   r   )r   r   r   r   r   r   r   refsattrsattrrefref_attrres_attrr3   r!   s   `            @@r"   test_vectorization+TestChandrupatlaMinimize.test_vectorization   sK    >Cbkk%r*2259

SVv**S/2::b>2::b>A	B	P 
	P	+ 	$Q<<t<"3'5Dxxt Dt!3t DEH 23HH/3%++u444	  	!5!56svv 5 56svv 5 56svv 5 56vvchh199,,,vvcgg!))a-///zz#++++V4444zz#****J7777zz#((..*5555zz#''--4444 !Es   K1
c                   ^ U4S jnTR                  STR                  S94nTR                  S/S-  TR                  S9TR                  S/S-  TR                  S9TR                  [        R
                  /S-  TR                  S94n[        U/UQ7USS.6nTR                  [        R                  [        R                  [        R                  [        R                  /TR                  S9n[        UR                  U5        g )Nc                    > S S S U4S j/n/ n[        [        U5      5       H9  nXS4   n[        [        U5      U   5      nUR	                  X&   " U5      5        M;     TR                  U5      $ )Nc                     U S-
  S-  $ )N      @rM   r%   rO   s    r"   <lambda>@TestChandrupatlaMinimize.test_flags.<locals>.f.<locals>.<lambda>      CA~r(   c                     U S-
  $ Nrw   r%   rO   s    r"   r   r         q2vr(   c                     U S-
  S-  $ )Nr   r   r%   rO   s    r"   r   r     r   r(   c                 Z   > TR                  U TR                  TR                  5      5      $ r2   	full_liker   nanrX   s    r"   r   r     s    r||Arzz"&&/ABr(   .)r   r
   intr	   r   r   )xsjsfuncsr   r   rP   jr   s          r"   r!   .TestChandrupatlaMinimize.test_flags.<locals>.f   sp    -%-BDE C72;'#vJQ(

58A;' ( 88C= r(   r   r   r   rM   rw   r   rf   )arangeint64r   r   npr   r   eim_ECONVERGED	_ESIGNERR	_ECONVERR
_EVALUEERRint32r   r   )r   r   r!   r   r3   r   	ref_flagss    `     r"   
test_flags#TestChandrupatlaMinimize.test_flags   s    
	! 		!288	,.::qc!e2:::6::qc!e2:::6::ruugairzz::< %QHHtRHJJ # 079xx  A	

I.r(   c           	         [         R                  R                  S5      nUR                  UR                  SS95      nUR                  SUR                  S9UR                  S5      UR                  S5      4nU4n[        USSSSS9nUR                  5       nS	US
'   [        U R                  /UQ70 UD6nUR                  UR                  UR                  -
  5      n	UR                  SUS
   -  UR                  S9n
[        XR                  SXR                  S95        SUS
'   [        U R                  /UQ70 UD6nUR                  UR                  UR                  -
  5      nUR                  SUS
   -  UR                  S9n
[        XR                  SXR                  S95        [        X5        UR                  5       nS	US'   [        U R                  /UQ70 UD6nUR                  UR                  UR                  -
  5      n	UR                  SUS   -  UR                  UR                  5      -  UR                  S9n
[        X5        SUS'   [        U R                  /UQ70 UD6nUR                  UR                  UR                  -
  5      nUR                  SUS   -  UR                  UR                  5      -  UR                  S9n
[        X5        [        X5        UR                  5       nS	US'   [        U R                  /UQ70 UD6nUR                  UR                   SUR"                  -  -
  UR$                  -   5      nUR                  SUS   -  UR                  S9n
[        XR                  SXR                  S95        SUS'   [        U R                  /UQ70 UD6nUR                  UR                   SUR"                  -  -
  UR$                  -   5      nUR                  SUS   -  UR                  S9n
[        XR                  SXR                  S95        [        X5        UR                  5       nS	US'   [        U R                  /UQ70 UD6nUR                  UR                   SUR"                  -  -
  UR$                  -   5      nUR                  SUS   -  UR                  UR&                  5      -  UR                  S9n
[        X5        SUS'   [        U R                  /UQ70 UD6nUR                  UR                   SUR"                  -  -
  UR$                  -   5      nUR                  SUS   -  [        UR&                  5      -  UR                  S9n
[        X5        [        X5        g )N   FA92 r_   sizer   r   r   rS   )r   r.   r/   r,   r-   MbP?r.   r   r_   ư>r/   r,   rM   r-   )r   randomdefault_rngr   r   dictcopyr   r!   absr5   r4   r   r   fullrP   r7   r:   r8   r<   )r   r   rngpr3   r   kwargs0rC   res1j1tolres2j2h1h2s                  r"   test_convergence)TestChandrupatlaMinimize.test_convergence  s   ii##$78JJszzqz)*::b

:3RZZ]BJJqMRtD!1Ew%dffAwA&AVVDGGdgg%&jj6'?*!''j:r774GG7<=w%dffAwA&AVVDGGdgg%&jj6'?*!''j:r774GG7<=rw%dffAwA&AVVDGGdgg%&jj6'?*266$&&>9jIrw%dffAwA&AVVDGGdgg%&jj6'?*266$&&>9jIrrw%dffAwA&AVVDGGa$''k)DGG34jj6'?*!''j:r774GG7<=w%dffAwA&AVVDGGa$''k)DGG34jj6'?*!''j:r774GG7<=rw%dffAwA&AVVDGGa$''k)DGG34jj6'?*266$((+;;177jKrw%dffAwA&AVVDGGa$''k)DGG34jj6'?*3txx=8jHrrr(   c                 >  ^ ^^^^^ TR                  S5      mTR                  S5      TR                  S5      TR                  S5      4mSm[        T R                  /TQ7T4TS.6nTR                  UR                  5      (       a   eTR                  UR                  TS-   :H  5      (       d   eTR                  UR                  T:H  5      (       d   eUUUUU U4S jmTR                  Tl	        TR                  Tl
        STl        S Tl        [        T R                  /TQ7T4TS	.6nUR                  5        H^  nUS
:X  a2  X$   [        R                  :X  d   eX4   [        R                   :X  d   eM;  X4   TR                  U   s=:X  a  X$   :X  a  M[   e   e   g )N~,?r   r   rS   r   r_   c                   > T=R                   S-  sl         U Tl        [        U S5      (       d   eTR                   S:X  a*  U R                  U R                  U R
                  4T:X  d   eOU R                  TR                  :H  U R
                  TR
                  :g  -  nU R                  TR                  :g  U R
                  TR
                  :H  -  nTR                  X-  5      (       d   eU R                  Tl        U R
                  Tl        U R                  [        R                  :X  d   e[        TR                  U R                  T5      U R                  5        [        TR                  U R                  T5      U R                  5        [        TR                  U R
                  T5      U R                  5        [        TR                  U R                  T5      U R                   5        TR                   T:X  a  ["        eg NrK   rP   r   )iterr   hasattrr4   r9   r5   allr   r   _EINPROGRESSr   r!   r7   r:   r8   rP   r<   StopIteration)	r   
changed_xr
changed_xlr3   r0   r   rf   r   r   s	      r"   r0   @TestChandrupatlaMinimize.test_maxiter_callback.<locals>.callback^  sq   MMQMHL3$$$$}}!/7:::!ff3(++8MN
!ff3(++8MN
vvj56666&&HK&&HK::!1!1111DFF3663/8DFF3663/8DFF3663/8DFF355#.8}}'## (r(   rj   r   r0   r   )r   r   r!   anyr   r  r   r   r   r4   r5   r  r   keysr   r   
_ECALLBACK)	r   r   r   r   rE   r3   r0   r   rf   s	   ``   @@@@r"   test_maxiter_callback.TestChandrupatlaMinimize.test_maxiter_callbackR  sp   jj"::b>2::a="**Q-@$TVV 6g 6SF-4666#++&&&&vvchh'!)+,,,,vvcgg())))	$ 	$, ffff%dff 9w 9cV/79
 88:Chx3==000yCNN222yHLL$5AAAAAA r(   casec                 :   Uu  p4nSnXF-   n[        X4U5      u  pGppSnSnSnSnUR                  U5      UR                  U5      UR                  XR                  S94n[        U/UQ7UXUS.6n[	        UR
                  UR                  XRR                  S95        g )Ng?g-C6?r   gؗҜ<r   )r.   r,   r/   r-   )ri   r   r   r   r   r   r   )r   r  r   r>   rc   r   rg   rd   rh   rQ   rU   rY   r.   r,   r/   r-   r3   r   s                     r"   test_nit_expected*TestChandrupatlaMinimize.test_nit_expected  s    
 # Y!1$B!? **R."**R."**Rzz*2RR$T LG L5+0ULCxx!@Ar(   g?gffffff?float16r   r   c           	        ^^ [        TT5      mTR                  UTS9nTR                  STS9TR                  STS9TR                  STS94nUU4S jn[        U/UQ7SU406nUR                  R                  T:X  d   e[        UR                  U[        R                  " TR                  T5      R                  5      S9  g )Nr   rK   rS   c                 V   > U R                   T:X  d   eTR                  X-
  S-  T5      $ NrM   )r   astype)rP   r   r   r   s     r"   r!   .TestChandrupatlaMinimize.test_dtype.<locals>.f  s,    77e###99ag\511r(   r   r   )
r   r   r   rP   r   r   r   sqrtfinfoeps)r   r   r   r   r3   r!   r   s     ``   r"   
test_dtype#TestChandrupatlaMinimize.test_dtype  s     E"jjEj*::b:.::au:-::au:-/	2 %Q>>v>uu{{e###s288E?3F3F)GHr(   c                    SnUR                  S5      UR                  S5      UR                  S5      4n[        R                  " [        US9   [	        S /UQ76   S S S 5        SnUR                  S5      UR                  S5      UR                  S5      4n[        R                  " [        US9   [	        S /UQ76   S S S 5        S	nUR                  S
S/5      UR                  SS/5      UR                  / SQ5      4n[        R                  " [        [
        4US9   [	        S /UQ76   S S S 5        SnUR                  SS/5      UR                  SS/5      UR                  SS/5      4n[        R                  " [        US9   [	        S /UQ76   S S S 5        SnUR                  S5      UR                  S5      UR                  S5      4n[        R                  " [        US9   [	        S /UQ7SS06  S S S 5        [        R                  " [        US9   [	        S /UQ7SUR                  06  S S S 5        [        R                  " [        US9   [	        S /UQ7SS06  S S S 5        [        R                  " [        US9   [	        S /UQ7SUR                  06  S S S 5        Sn[        R                  " [        US9   [	        S /UQ7SS06  S S S 5        [        R                  " [        US9   [	        S  /UQ7SS06  S S S 5        S!n[        R                  " [        US9   [	        S" /UQ7S#S$06  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNG= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNr= f! , (       d  f       GNR= f! , (       d  f       GN(= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)%N`func` must be callable.rn   r   r   match3Abscissae and function output must be real numbers.            ?c                     U $ r2   r%   rO   s    r"   r   @TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>      Qr(   z...be broadcast...rl   r  r_   r   rS   c                     U $ r2   r%   rO   s    r"   r   r(    r)  r(   z:The shape of the array returned by `func` must be the samerS   c                     U S   U S   U S   /$ )N)r   .)rK   .r%   rO   s    r"   r   r(    s    ai6AfI-Nr(   (Tolerances must be non-negative scalars.c                     U $ r2   r%   rO   s    r"   r   r(    r)  r(   r.   rj   c                     U $ r2   r%   rO   s    r"   r   r(    r)  r(   r/   c                     U $ r2   r%   rO   s    r"   r   r(    r)  r(   r,   ekkic                     U $ r2   r%   rO   s    r"   r   r(    r)  r(   r-   )`maxiter` must be a non-negative integer.c                     U $ r2   r%   rO   s    r"   r   r(    r)  r(   rf         ?c                     U $ r2   r%   rO   s    r"   r   r(    r)  r(   `callback` must be callable.c                     U $ r2   r%   rO   s    r"   r   r(    r)  r(   r0   	shrubbery)r   pytestraises
ValueErrorr   RuntimeErrorr   )r   r   messager3   s       r"   test_input_validation.TestChandrupatlaMinimize.test_input_validation  s    -**R."**Q-A>]]:W5"42'2 6 H**W%rzz!}bjjmC]]:W5";99 6 '**b"X&

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

Aq6(:BJJ1v<NN]]:W5"#N -$+- 6 =**R."**Q-A>]]:W5";CCC 6]]:W5";GGG 6]]:W5";GGG 6]]:W5";GGG 6 >]]:W5";FF#F 6]]:W5";EE"E 6 1]]:W5";OO;O 65M 65
 65 FE
 65 65555555 6555 65s   M	0MM-M?+NN#N5O	O;O+/O<	
M
M*-
M<?
N
N #
N25
O
O
O(+
O9<
P
c                    UR                  SSS5      S S 2UR                  4   nUR                  [        [	        / SQ5      5      5      R
                  n[        U R                  /UQ7SU406nUR                  [        R                  " UR                  U5      UR                  U R                  X"5      :H  -  5      (       d   eUR                  S S 2S4   n[        UR                  UR                  R
                  U5      SS06  g )	Nrj   rK   rT   r   r   r   r   V瞯<)r   newaxisr   listr   Tr   r!   r  xpxiscloserP   r<   r   broadcast_arrays)r   r   r   bracketsr   r   s         r"   test_bracket_order+TestChandrupatlaMinimize.test_bracket_order  s    kk"a#ArzzM2::d<
#;<=??$TVVDhDcVDvvckk#%%-DFF3<L1LMNNNNeeAqDk,,SUUWWc:GGr(   c                   ^ U4S jnTR                  S5      TR                  S5      TR                  S5      4n[        R                  " SS9   [        U/UQ7SSS.6nS S S 5        WR                  (       d   e[        UR                  TR                  S5      S	S
9  [        UR                  TR                  S5      SS9  S nTR                  S5      TR                  S5      TR                  S5      4n[        U/UQ76 nUR                  (       d   e[        UR                  TR                  S5      5        S nTR                  S5      TR                  S5      TR                  S5      4n[        U/UQ7SS06nUR                  (       d   UR                  U:H  5       eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eS nTR                  S5      TR                  S5      TR                  S5      4nTR                  S5      n[        U/UQ7SU406n[        UR                  U5        U4S jnTR                  S5      TR                  S5      TR                  TR                  5      4n[        U/UQ7SSSSS.6nUR                  (       d   eUR                  UR                  s=:  a  UR                  :  d   e   eU" UR                  5      U" UR                  5      s=:X  a  U" UR                  5      :X  d   e   eg ! , (       d  f       GN= f)Nc                 Z   > TR                  U R                  S5      (       d   eU S-
  S-  $ )Nreal floatingrK   rM   r   r   rX   s    r"   r!   6TestChandrupatlaMinimize.test_special_cases.<locals>.f  s,    ::agg7777EA:r(   r   r^   ignoreinvalid)r,   r-         ?r   r   r   gN~hatolc                     U S-
  S-  $ NrK   rM   r%   rO   s    r"   r!   rP        aC!8Or(   rK   c                     U S-
  S-  $ rY  r%   rO   s    r"   r!   rP    rZ  r(   r  g?rS   rf   r_   rl   c                     X-
  S-  S-
  $ )NrM   rK   r%   rP   cs     r"   r!   rP    s    C!8a<r(   rj   UUUUUU?r   c                 (   > TR                  U 5      * $ r2   )sinrX   s    r"   r!   rP    s    FF1I:r(   r.   r/   r,   r-   )r   r   errstater   r   r   rP   r<   r   r4   r5   r   r   r   r   r9   )r   r   r!   r3   r   r^  s    `    r"   test_special_cases+TestChandrupatlaMinimize.test_special_cases  s   	 **R."**Q-A>[[*(GWGAQGC +{{{rzz"~D9Bf=	 **Q-A

1=$Q11{{{rzz"~.	 **R."**S/2::a=@$Q<<!<vv(svv((vww!||xx1}}zzRuu||	  **R."**Q-A>JJsO$Q<<t<q!	 **Q-A

2550AA$QUU!STU{{{vv''''''yAcffI236622222] +*s   L22
Mr%   N)__name__
__module____qualname____firstlineno__r!   r:  markparametrizer   r   r   tupler   r   r   r  casesr  r  r?  rJ  rd  __static_attributes__r%   r(   r"   r}   r}      s!   2
 [[W&<=[[US"++eT2*F$GH& I >& [[Wuwvy&IJ%5 K%5P/2:x2Bh [[VU+B ,B, [[UTD#;$78[[W&GHI I 9I",P\H73r(   r}   c            	          \ rS rSrS r\R                  R                  SS\R                  " SSS5      /5      S 5       r
\R                  R                  S	\" 5       S
SS/5      S 5       rS rS rS r\R                  R                  S\5      S 5       r\R                  R                  SSSS/45      \R                  R                  SS5      S 5       5       rS rS rSrg)TestFindRooti!  c                 4    [         R                  " U5      U-
  $ r2   )r   ndtr)r   qr   s      r"   r!   TestFindRoot.f$  s    ||A""r(   r   r   rz   r   rw   c                 T   UR                  S5      UR                  S5      pC[        U R                  X44UR                  U5      4S9nUR                  [        R                  " 5       R                  U5      UR                  U5      R                  S9n[        UR                  U5        g )Nr   r[   r   r   )	r   r   r!   r   r   ppfr   r   rP   )r   r   r   abr   r   s          r"   r   TestFindRoot.test_basic'  sy     zz#

21bjjm-=>jj))!,BJJqM4G4GjHs#r(   r   r   r   r   c           
        ^ ^ U(       a'  [         R                  " SSS5      R                  U5      O[         R                  " S5      nUR	                  U5      nU4nUR
                  n[         R                  U 4S j5       nUU 4S jmSTl        UR	                  SUR                  S	9UR	                  S
UR                  S	94n[        TXS9n	U" U5      R                  5       n
U
 Vs/ s H  oR                  PM     nnUR                  UR	                  XS	9U5      n[        U	R                  U5        U
 Vs/ s H  oR                  PM     nnUR                  UR	                  XS	9U5      n[        U	R                  USS9  [        U	R                  T R                  " U	R                  /UQ76 5        U
 Vs/ s H  n[        UR                   5      PM     nnUR                  UR	                  XR                  S	9U5      n[        U	R                   U5        U
 Vs/ s H  oR"                  PM     nnUR                  UR	                  XR$                  S	9U5      n[        U	R"                  U5        U
 Vs/ s H  oR&                  PM     nnUR                  UR	                  UUR$                  S	9U5      n[)        U5      (       aB  [        U	R&                  U5        UR+                  U	R&                  5      TR                  :X  d   eOBU	R&                  R,                  U:X  d   eU	R&                  R
                  UR$                  :X  d   eU
 Vs/ s H  oR.                  PM     nnUR                  UR	                  UUR$                  S	9U5      n[)        U5      (       aE  [        U	R.                  U5        UR+                  U	R.                  5      TR                  S-
  :X  d   eOBU	R.                  R,                  U:X  d   eU	R.                  R
                  UR$                  :X  d   eU
 Vs/ s H  oR0                  S   PM     nnUR                  UR	                  UUS	9U5      n[        U	R0                  S   U5        U
 Vs/ s H  oR0                  S   PM     nnUR                  UR	                  UUS	9U5      n[        U	R0                  S   U5        [3        U	R0                  S   U	R0                  S   5        UR5                  U	R                  5      nUR7                  U	R                  U   U	R0                  S   U   :H  U	R                  U   U	R0                  S   U   :H  -  5      (       d   e[)        U5      (       a  SOSnU
 Vs/ s H  oR8                  S   PM     nnUR                  UR	                  UUS	9U5      n[        U	R8                  S   UUS9  [        U	R8                  S   T R                  " U	R0                  S   /UQ76 5        U
 Vs/ s H  oR8                  S   PM     nnUR                  UR	                  UUS	9U5      n[        U	R8                  S   UUS9  [        U	R8                  S   T R                  " U	R0                  S   /UQ76 5        UR7                  UR;                  U	R                  U   5      UR=                  UR;                  U	R8                  S   U   5      UR;                  U	R8                  S   U   5      5      :H  5      (       d   eg s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf )Nrz   r   rv   r   c                 0   > [        TR                  SU 4S9$ )N)r   rS   rv  )r   r!   )r   r   s    r"   find_root_single9TestFindRoot.test_vectorization.<locals>.find_root_single9  s    TVVWA488r(   c                  R   > T=R                   S-  sl         TR                  " U 0 UD6$ r   r   r   s     r"   r!   *TestFindRoot.test_vectorization.<locals>.f=  r   r(   r   r   r   r[   rv  rB  rV  rM   rK   g&.>)r   r   r   r   r   r   	vectorizer   r   ravelrP   r   r;   r   r!   r   r   r   r   r   r   r   r   r   r3   r   isfiniter  r6   r   minimum)r   r   r   r   p_xpargs_xpr   r}  r3   r   r   r   ref_xref_fref_success
ref_statusref_nfevref_nitref_xlref_xrfiniterW  ref_flref_frr!   s   `                       @r"   r   TestFindRoot.test_vectorization/  s    =BR[[b)11%8**S/ 	
zz!}'

		9 
	9	+ 	**S

*3RZZ"**Z5UU71"((*"&'$3$'

2::e:95Au%$()DSD)

2::e:95AU3!8!89489DStCKK(D9jjKww!GO[1,01DSjjD
1ZZ

:XX
 FN


J/(,-HH-::bjjjBEJB<<CHHh/66#((#qyy00088>>U***88>>RXX---&*+ds77d+**RZZrxxZ@%HB<<CGGW-66#''?aiik11177==E)))77==BHH,,,,01DS++a.D1BJJvUJ;UCA/,01DS++a.D1BJJvUJ;UCA/s{{1~s{{1~6SUU#vvsuuV}Av(>>v#++a.*@@B C C 	C C !u$.23ds--"d3BJJvUJ;UCa(&t<a($&&Q*J'*JK.23ds--"d3BJJvUJ;UCa(&t<a($&&Q*J'*JKvvbffSWWV_-jja(8(@!A!#a(8(@!ACC D D 	D D{ ( *
 : 2 . , 2 2 4
 4s<   &\#6\(6\-\24\7\<)] ]]]c                   ^ U4S jnTR                  STR                  S94nTR                  S/S-  5      TR                  TR                  /S-  5      pT[	        X$U4USS9nTR                  [
        R                  [
        R                  [
        R                  [
        R                  /TR                  S9n[        UR                  U5        g )Nc                 \  > UR                   TR                  :X  d   e[        T5      (       a?  S S S U4S j/n[        X5       VVs/ s H  u  p4U[	        U5         " U5      PM     snn$ S S S U4S j/n[        X5       VVs/ s H  u  p4X$   " U5      PM     snn$ s  snnf s  snnf )	Nc                     U S-
  $ Nr   r%   rO   s    r"   r   4TestFindRoot.test_flags.<locals>.f.<locals>.<lambda>  s    1s7r(   c                     U S-
  $ r   r%   rO   s    r"   r   r    s    1r6r(   c                     U S-
  S-  $ N皙?r_   r%   rO   s    r"   r   r    s    AGa<r(   c                 Z   > TR                  U TR                  TR                  5      5      $ r2   r   rX   s    r"   r   r    s    2<<2::bff3E#Fr(   c                     U S-
  $ r  r%   rO   s    r"   r   r    s    q3wr(   c                     U S-
  $ r   r%   rO   s    r"   r   r    r   r(   c                     U S-
  S-  $ r  r%   rO   s    r"   r   r    r   r(   c                    > TR                   $ r2   )r   rX   s    r"   r   r    s	    rvvr(   )r   r   r   zipr   )r   r   r   rP   r   r   s        r"   r!   "TestFindRoot.test_flags.<locals>.f  s     88rxx'''r{{*)/FH 69[A[TQc!fa([AA&%-%'E -0K8KDAEHQKK88 B 9s   	 B"B(r   r   r   rM   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r!   r   rx  ry  r   r   s    `      r"   r   TestFindRoot.test_flags  s    	9$ 		!288	,.zz2$q&!2::ruugai#81q6a8JJ # # # 0 8:xx  A	 	

I.r(   c           
      	   [         R                  R                  S5      nUR                  UR                  SS95      nUR                  S5      * UR                  S5      4nU4n[	        U[	        SSSSS9S9n[        U5      nSUS	   S
'   [        U R                  U40 UD6n[        UR                  S   UR                  S   -
  UR                  X1R                  S5      5      5        SUS	   S
'   [        U R                  U40 UD6n	[        U	R                  S   U	R                  S   -
  UR                  X1R                  S5      5      5        [        U	R                  S   U	R                  S   -
  UR                  S   UR                  S   -
  5        [        U5      nSUS	   S'   [        U R                  U40 UD6n[        UR                  S   UR                  S   -
  SUR                  UR                  5      -  5        SUS	   S'   [        U R                  U40 UD6n	[        U	R                  S   U	R                  S   -
  SUR                  U	R                  5      -  5        [        U	R                  S   U	R                  S   -
  UR                  S   UR                  S   -
  5        [        U5      nSUS	   S'   [        U R                  U40 UD6n[        UR                  UR                  5      UR                  X1R                  S5      5      5        SUS	   S'   [        U R                  U40 UD6n	[        UR                  U	R                  5      UR                  X1R                  S5      5      5        [        UR                  U	R                  5      UR                  UR                  5      5        [        U5      nSUS	   S'   Uu  pUR                  UR                  U R                  " U
/UQ76 5      UR                  U R                  " U/UQ76 5      5      n[        U R                  U40 UD6n[        UR                  UR                  5      SU-  5        SUS	   S'   [        U R                  U40 UD6n	[        UR                  U	R                  5      SU-  5        [        UR                  U	R                  5      UR                  UR                  5      5        g )Nr   r_   r   r[   r   rb  r   r@   r   r@   r.   rK   r   r/   r,   r-   )r   r   r   r   r   r   r   r!   r   r3   r   r   rP   r;   r  )r   r   r   r   r3   r   r   rC   r   r   rc   rd   f0s                r"   r   TestFindRoot.test_convergence  s   ii##$78JJszzqz)*JJrN?BJJrN3tDT!ST-UV'"(,|W%3F3t||Aa8||Azz$'78	:(,|W%3F3t||Aa8||Azz$'78	:t||Aa8||Aa8	: '"(,|W%3F3t||Aa8$:OP(,|W%3F3t||Aa8bffTVVn,	.t||Aa8||Aa8	: '"(,|W%3F3rvvdhh'aD9I)JK(,|W%3F3rvvdhh'aD9I)JKrvvdhh')9:'"(,|W%ZZtvvb0401266$&&:Kd:K3LM3F3rvvdhh'b1(,|W%3F3rvvdhh'b1rvvdhh')9:r(   c           	        ^ ^^^^^^	 TR                  S5      m	TR                  S5      TR                  S5      4mSmU4S jmS Tl        S Tl        [        TTT	4TS9nTR	                  UR
                  5      (       a   eTR                  UR                  TS-   :H  5      (       d   eTR                  UR                  T:H  5      (       d   eUUUU	U U4S jmS	Tl	        S Tl
        S S /Tl        [        TTT	4TS
9nUR                  5        H  nUS:X  aj  [        X$   TR                  [        R                  TR                   S95        [        X4   TR                  [        R"                  TR                   S95        Ms  US;   a.  [        X4   S   X$   S   5        [        X4   S   X$   S   5        M  UR%                  S5      (       a  M  [        X4   X$   5        M     g )Nr   r   r[   rS   c                 V   > [         R                  " U 5      U-
  nU Tl        UTl        U$ r2   )r   rr  rP   r;   )rs  r   r   r!   s      r"   r!   -TestFindRoot.test_maxiter_callback.<locals>.f  s(    ,,q/A%CACAEJr(   r   rM   c                   > T=R                   S-  sl         U Tl        [        U S5      (       d   eTR                   S:X  a%  U R                  S   U R                  S   4T:X  d   eOU R                  S   TR                  S   :H  U R                  S   TR                  S   :g  -  U R                  S   TR                  S   :g  U R                  S   TR                  S   :H  -  -  nTR	                  U5      (       d   eU R                  S   TR                  S'   U R                  S   TR                  S'   U R
                  [        R                  :X  d   e[        TR                  U R                  S   T5      U R                  S   5        [        TR                  U R                  S   T5      U R                  S   5        [        TR                  U R                  T5      U R                  5        TR                   T:X  a  [        eg r  )r  r   r  r3   r  r   r   r  r   r!   r6   rP   r;   r  )r   changedr3   r0   rf   r   r   r   s     r"   r0   4TestFindRoot.test_maxiter_callback.<locals>.callback  s   MMQMHL3$$$$}}!AA77BBB [[^x/?/?/BB"{{1~1A1A!1DDF"{{1~1A1A!1DD!$Q83C3CA3F!FHI vvg&"%++a.HQ"%++a.HQ::!1!1111DFF3;;q>15s}}Q7GHDFF3;;q>15s}}Q7GHDFF355!,cgg6}}'## (r(   rj   r
  r   r   >   r3   r6   r   rK   _)r   rP   r;   r   r  r   r  r   r   r  r   r3   r  r   r   r   r   r  
startswith)
r   r   r   r   rE   r3   r0   r!   rf   r   s
   ``   @@@@@r"   r  "TestFindRoot.test_maxiter_callback  s   JJx ::c?BJJrN3	
 7!w?66#++&&&&vvchh'!)+,,,,vvcgg())))	$ 	$,  $<G1$B 88:Ch"**S]]"((**ST	2::cnnBHH:+UV00	!chqk:	!chqk:$$	384 r(   r  c           	         Uu  p4pVnUR                  US   UR                  S9UR                  US   UR                  S94nUR                  XRR                  S9n[        X4[        SSS9S9n[	        UR
                  UR                  U" U5      UR                  S9SS	S
9  [        UR                  UR                  XbR                  S95        g )Nr   r   rK   g|=gh㈵>)r/   r.   r@   g:0yE>gMb`?)r   rW  )	r   r   r   r   r   r;   r   r   r   )	r   r  r   r!   r3   rootnfevalidr   s	            r"   r  TestFindRoot.test_nit_expected  s    
 (,$D"
 ::gaj

:;::gaj

:;=zz$jjz1t%t/LMAdG2::!F!	."**V88*"DEr(   r  gCl?gV-?r   r  c                   ^^ [        T5      (       + nU(       a  TS:X  a  [        R                  " S5        [        TTS 5      mTc  [        R                  " T ST 35        UU4S jnTR	                  STS9TR	                  STS9pvTR	                  UTS9n[        XVU4U4SS	0S
9n [        UR                  US	S9  g ! [         a=    UR                  R                  T:X  d   eTR                  UR                  S:H  5         g f = f)Nr  z0`float16` dtype only supported for NumPy arrays.z does not support c                 V   > X-
  S-  n[        T5      (       a  TR                  UTS9$ U$ )NrL   r   )r   r   )rP   r  r   r   r   s      r"   r!   "TestFindRoot.test_dtype.<locals>.f5  s0    8"C||zz#Uz33Jr(   r  r   r_   r.   r   r  rV  r   )r   r:  skipr   r   r   r   rP   AssertionErrorr   r  r;   )	r   r  r   r   	not_numpyr!   rx  ry  r   s	     ``     r"   r  TestFindRoot.test_dtype)  s     !$	)+KKJKE4(=KK2$089	 zz"Ez*BJJqJ,F1zz$ez,q6WdOL	!CEE4d3 	!55;;%'''FF377a< 	!s   (B> >ADDc           	      R   S nSn[         R                  " [        US9   UR                  S5      UR                  S5      4n[	        S U5        S S S 5        Sn[         R                  " [        US9   UR                  S5      UR                  S5      4n[	        X$5        S S S 5        Sn[         R                  " [        [
        4US9   UR                  S	S
/5      UR                  / SQ5      4n[	        X$5        S S S 5        Sn[         R                  " [        US9   UR                  S
S
/5      UR                  SS/5      4n[	        S U5        S S S 5        SnUR                  S5      UR                  S5      4n[         R                  " [        US9   [	        X$[        SS9S9  S S S 5        [         R                  " [        US9   [	        X$[        UR                  S9S9  S S S 5        [         R                  " [        US9   [	        X$[        SS9S9  S S S 5        [         R                  " [        US9   [	        X$[        UR                  S9S9  S S S 5        Sn[         R                  " [        US9   [	        X$SS9  S S S 5        [         R                  " [        US9   [	        X$SS9  S S S 5        Sn[         R                  " [        US9   [	        X$SS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN`= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNb= f! , (       d  f       GNA= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nc                     U $ r2   r%   rO   s    r"   r>   0TestFindRoot.test_input_validation.<locals>.funcG  s    Hr(   r"  r#  rn   r   r%  r&  z@(not be broadcast|Attempting to broadcast a dimension of length)rl   r  r*  z,The shape of the array returned by `func`...rS   c                     U S   U S   U S   /$ )Nr   rK   r%   rO   s    r"   r   4TestFindRoot.test_input_validation.<locals>.<lambda>^  s    1qtQqT 2r(   r-  rj   )r.   r  )r/   r1  )r,   )r-   r3  r5  rf   r7  r9  )r0   )r:  r;  r<  r   r   r=  r   r   )r   r   r>   r>  r3   s        r"   r?  "TestFindRoot.test_input_validationD  s   	 -]]:W5jjnbjjm3GdG$ 6 H]]:W5jj'A6Gd$ 6 U]]J5WEjj"b*BJJy,AAGd$ F A]]:W5jj"b*BJJ1v,>>G2G< 6 =**R."**Q-/]]:W5d2? 6]]:W5d2660BC 6]]:W5d60BC 6]]:W5d2660BC 6 >]]:W5dS1 6]]:W5dR0 6 1]]:W5dk: 65O 65
 65 FE
 65 65555555 6555 65s   /K&1.K82L
4LL.	M M9M$8M6$NN&
K58
L

L
L+.
L= 
M
M!$
M36
N
N
N&c                 	  ^ S nTR                  / SQ5      TR                  / SQ5      pC[        R                  " SSS9   [        X#U45      nS S S 5        TR	                  WR
                  5      (       d   e[        UR                  SS  TR                  SUR                  S   5      5        U4S	 jn[        UTR                  S
5      TR                  S5      45      nUR
                  (       d   e[        UR                  TR                  S5      5        S nTR                  SS/5      n[        UTR                  S5      TR                  S5      4U4S9n[        UR
                  TR                  SS/5      5        [        UR                  TR                  TR                  S/5      5        S n[        R                  " SS9   TR                  TR                  5      n[        X'U45      nS S S 5        UR
                  (       d   e[        UR                  TR                  TR                  5      5        S nTR                  S5      TR                  S5      pC[        X#U4SS9n[        UR
                  TR                  S5      5        [        UR                  TR                  STR                  S95        [        UR                  TR                  STR                  S95        [        UR                  TR                  STR                  S95        [        UR                   S   U5        [        UR                   S   U5        [        UR                  U5        [        X$* U* 4SS9n[        UR                  U* 5        [        X#U4SS9n[        UR
                  TR                  S5      5        [        UR                  TR                  STR                  S95        [        UR                  TR                  STR                  S95        [        UR                  TR                  STR                  S95        [        UR                  TR                  S5      5        S n[        UTR                  S5      TR                  S5      4TR                  S5      S9n[        UR                  TR                  S5      5        g ! , (       d  f       GN= f! , (       d  f       GN= f)Nc                 &    SU -  S-   SU * S-   -  -
  $ r   r%   rO   s    r"   r!   *TestFindRoot.test_special_cases.<locals>.fy  s    q519qQBF|++r(   )r  r   r   r  )?rU  r  rU  rR  )dividerT  rK   r   r   c                 Z   > TR                  U R                  S5      (       d   eU S-  S-
  $ )NrN     rK   rO  rX   s    r"   r!   r    s,    ::agg77777Q;r(   rQ  rS   rU  c                     U S-  U-
  $ r  r%   )rP   r  s     r"   r!   r    s    a4$;r(   rv  FTc                     SU -  $ r   r%   rO   s    r"   r!   r    s    Q3Jr(   rS  c                     U S-  S-
  $ )Nr_   rK   r%   rO   s    r"   r!   r    s    a4!8Or(   g      r[   r  rl   r   rM   r_   c                     X-  S-
  $ r   r%   r]  s     r"   r!   r    s    37Nr(   rj   r_  )r   r   rc  r   r  r   r   rP   r   r   r   infr   r   r   r   r3   )r   r   r!   rx  ry  r   r  r  s    `      r"   rd  TestFindRoot.test_special_casesu  s   	, zz,-

;O0P1[[(;A1v&C < vvckk""""ab	2774q#:;	 BJJrNBJJqM:;{{{rzz"~.	 zz1a&!BJJqM2::a=9HRZZ%>?rzz2662,78	 [[***RVV$CASz*C + {{{rzz"&&12	 zz#

21q61-RZZ%67

BJJrJ$BCARXX!>?"**Qbhh*"?@A*A*q!B8Q/r" q61-RZZ%56

BJJqJ$ABARXX!>?"**Qbhh*"?@rzz"~.	 BJJrNBJJqM:AOrzz#/I <;> +*s   S
)S

S
S+r%   N)rf  rg  rh  ri  r!   r:  rj  rk  r   r   r   rl  r   r   r   r  r   r  r  r?  rd  rn  r%   r(   r"   rp  rp  !  s   # [[S3E4(D"EF$ G$ [[Wuwvy&IJUD KUDn/>1;f;5z [[V%89F :F$ [[VeeU^%<=[[W&GH! I >!2/;bM0r(   rp  ).r   r:  numpyr   r   r   scipyr   r   (scipy._lib._elementwise_iterative_method_lib_elementwise_iterative_methodr   scipy._lib.array_api_extraarray_api_extrarF  scipy._lib._array_apir   r   r   r	   r
   r   scipy._lib._array_api_no_0dr   r   r   scipy.optimize.elementwiser   r   scipy.optimize._tstutilsr   	itertoolsr   r)   rH   r   rQ   rU   rY   r\   ra   ri   rm  r}   rp  r%   r(   r"   <module>r     s\         6 6 ( (? ?9 9 ? 8 ":"!J ,L9 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 < `3 `3 !`3F 9`0 `0 `0r(   