
    Bpj7                         S SK r S SKrS SKJr  S SKJrJrJrJ	r	  S SK
Js  Jr  S SKJr  S SKJrJrJr  S SKJrJr  S rS r\" \5       " S	 S
5      5       r\" \5       " S S5      5       rg)    N)_ELIMITS)bracket_rootbracket_minimum	find_rootfind_minimum)stats)xp_assert_closexp_assert_equalxp_assert_less)xp_ravelmake_xp_test_casec                      [        U 0 UD6nUR                  u  Ul        Ul        UR                  u  Ul        Ul        U?U?U$ N)r   bracketxlxr	f_bracketflfrargskwargsress      ]/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_bracket.py_bracket_rootr      sB    

'
'C[[NCFCF]]NCFCFJ    c                      [        U 0 UD6nUR                  u  Ul        Ul        Ul        UR
                  u  Ul        Ul        Ul        U?U?U$ r   )	r   r   r   xmr   r   r   fmr   r   s      r   _bracket_minimumr    #   sL    
4
*6
*C [[CFCFCF ]]CFCFCFJr   c            	          \ rS rSr\R
                  R                  SS5      \R
                  R                  SS5      \R
                  R                  SS5      \R
                  R                  SS5      S 5       5       5       5       rS	 r\R
                  R                  S
S\	R                  " SSS5      /5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      S 5       5       5       5       r\R
                  R                  S\" 5       SSS/5      S 5       rS r\R
                  R                  SSSS /45      \R
                  R                  SSS/5      \R
                  R                  SSS/5      \R
                  R                  S!S"5      S# 5       5       5       5       rS$ rS% rS& r\R
                  R                  S!S'S(/5      S) 5       rS*rg)+TestBracketRoot,   seed)i&$l   v ih0use_xminFT
other_sidefix_one_sidec                   ^ [         R                  R                  U5      nUR                  UR                  SS9/ SQ-  5      u  pxn	SU	-   n	Xx-   n
U4S jmU(       a  UR                  UR                  5       * 5      nUR	                  UR                  X{-
  * U-  5      UR                  U	5      -  5      nXU-
  X* -  -  -   XU-
  XS-
  * -  -  -   p[        XzXS9nORUR	                  UR                  X-  5      UR                  U	5      -  5      nXX-  -  -
  XXS-
  -  -  -
  p[        XzU	S9nU(       a3  US   * US	   * sUS	'   US'   U* U* pS
U;   a  UR                  S
5      * US'   U(       a  U(       a  U
* US
'   OXS'   STl        [        T40 UD6nU(       dJ  UR                  SUR                  S-   -  s=:X  a$  STR                  S-
  -  s=:X  a  SUS-   -  :X  d   e   eOIUR                  UR                  S-   S-   s=:X  a$  TR                  S-
  S-   s=:X  a  US-   S-   :X  d   e   eUR                  UR                  UR                  /5      n[        UUR                  X/5      5        UR                  UR                  UR                   /5      n[        UT" U5      5        UR                  UR                  :  d   eUR#                  U5      nUS   US   * :X  d   eUR$                  S:X  d   eUR&                  (       d   eg )N   size)     j@
         c                 2   > T=R                   S-  sl         U $ Nr0   countxfs    r   r7   -TestBracketRoot.test_nfev_expected.<locals>.fA       GGqLGHr   )xl0xr0factorxmin)r:   r;   r<   r;   r:   r=   xmaxr      )nprandomdefault_rngasarrayceillogdictpopr4   r   nfevnitr   r   r	   r   r   signstatussuccess)selfr$   r%   r'   r(   xprngr:   dr<   r;   r=   nlur   r   r   r   signsr7   s                       @r   test_nfev_expected"TestBracketRoot.test_nfev_expected.   s    ii##D)CJJAJ$6$EFVg	 ::szz|m,D}t34rvvf~EFA:vrz114:vUVQVxGW:W3Wqc6EFsuv67A69$cfsmO&;qc6:F,25M>F5M>(F5M6%=2rq"(**V"4!4v"%v!$vA(( 88q#''!)}J17719JAEJJJJJ88	1}HAH!A#qHHHHH **cffcff-.QF!34JJ/0		1W:. vv	"QxE!H9$$$zzQ{{{r   c                 b    [         R                  R                  5       R                  U5      U-
  $ r   )r   	_stats_py_SimpleNormalcdf)rM   qps      r   r7   TestBracketRoot.f{   s%    ,,.221599r   r\   333333?皙?gffffff?r.   r=   Nr>   r/   r<   333333?r?   c                     [        U R                  UR                  S5      SX#XER                  U5      4S9n[        UR	                  UR
                  5      * UR	                  UR                  5      5        g )N{Gz{Gz?)r=   r>   r<   r   )r   r7   rC   r
   rJ   r   r   )rM   r\   r=   r>   r<   rN   r   s          r   
test_basicTestBracketRoot.test_basic~   sW     DFFBJJu$5t$#)A0@B("''#&&/:r   shape   r*      r*   r?   r?   c                 r  ^ ^^ U(       a'  [         R                  " SSS5      R                  U5      O[         R                  " S5      nU4nSm[         R                  UU 4S j5       nUU 4S jmSTl        [         R                  R                  S	5      nUR                  US
9* nUR                  US
9nSU-  SU-  pU(       a8  UR                  US
9S:  n[         R                  * [         R                  sX'   X'   UR                  US
9S-   nU" XxXX5      R                  5       nUR                  U5      UR                  U5      UR                  U	5      UR                  U
5      UR                  U5      4u  pxpn[        [        UR                  U5      5      n[        TXxXUUTS9n/ SQnU Ho  nU Vs/ s H  nUR                  [        UU5      5      PM      nn[        UU5      n[        [!        UUS9UR#                  U5      5        UR$                  U:X  a  Mo   e   UR&                  R(                  UR*                  :X  d   eU(       a%  UR-                  UR&                  SS 5      (       d   eUR.                  R(                  UR0                  :X  d   eUR2                  R(                  UR0                  :X  d   eUR4                  R(                  UR0                  :X  d   eUR7                  UR4                  5      TR
                  S-
  :X  d   e[9        UR:                  UR<                  5        [        UR>                  UR                  T R@                  " UR:                  /UQ76 5      5        [        URB                  UR                  T R@                  " UR<                  /UQ76 5      5        g s  snf )N皙?ri   r^   r.   c                 4   > [        TR                  XX#XE4TS9$ )Nr=   r>   r<   r   maxiter)r   r7   )r:   r;   r=   r>   r<   r\   rr   rM   s         r   bracket_root_single?TestBracketRoot.test_vectorization.<locals>.bracket_root_single   s"     (.T)02 2r   c                  R   > T=R                   S-  sl         TR                  " U 0 UD6$ r2   )f_evalsr7   )r   r   r7   rM   s     r   r7   -TestBracketRoot.test_vectorization.<locals>.f   s$    IINI664*6**r   r   # r+        @@      ?      ?rq   )r   r   r   r   rL   rH   rI   rN   r0   r?   )"r@   linspacereshapefloat64	vectorizerv   rA   rB   infravelrC   tuplemapr   getattrr	   r   stackrg   rL   dtypeboolallrK   int32rH   rI   maxr   r   r   r   r7   r   )rM   rg   rN   r\   r   rs   rO   r:   r;   r=   r>   ir<   refsr   attrsattrrefref_attrres_attrr7   rr   s   `                   @@r   test_vectorization"TestBracketRoot.test_vectorization   s    <ABKKtR(007bjjQTot		2 
	2
	+ 	ii##G,zzuz%%jjej$Wc#gd


&,A "wDGTW'#-"3TCIIK(*

3C(*

4(8"**T:J(*

6(:(<$$f ST*+Asdf!%w8 CDBFG$3

73#56$HGsD)HHX"5rxx7IJ>>U***	  {{  BGG+++66#++a+,,,,zz288+++xx~~)))ww}}(((vvcgg!))a-///svvsvv&

466#&&+@4+@ AB

466#&&+@4+@ AB Hs   5%N4c                 Z  ^ U4S jnTR                  STR                  S94n[        UTR                  / SQ5      TR                  / SQ5      TR                  TR                  * STR                  * TR                  * S/5      TR                  TR                  STR                  TR                  S	/5      US
S9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S /n[        X5       VVs/ s H  u  p4U[        U5         " U5      PM     snn$ s  snnf )Nc                     U S-
  $ )Nr{    r6   s    r   <lambda>7TestBracketRoot.test_flags.<locals>.f.<locals>.<lambda>   s    q3wr   c                     U S-
  $ Ni  r   r   s    r   r   r          q4xr   c                     U S-
  $ r   r   r   s    r   r   r      r   r   c                 "   > U TR                   -  $ r   )nanr6   rN   s    r   r   r      s    q266zr   c                     U $ r   r   r   s    r   r   r          qr   zipintxsjsfuncsr6   jrN   s        r   r7   %TestBracketRoot.test_flags.<locals>.f   sF    &'') 	"E 25R=E#a&M!$===    Ar/   r   )      r   r   r         @)r0   r0   r0   r0   r}      r0   r?   r*   )r:   r;   r=   r>   r   rr   )arangeint64r   rC   r   eim_ECONVERGEDr   	_ECONVERR
_EVALUEERR
_EINPUTERRr   r
   rK   )rM   rN   r7   r   r   	ref_flagss    `    r   
test_flagsTestBracketRoot.test_flags   s    	> 		!288	,.A "

+C D "

+; <!#bffWb266'BFF7A,N!O!#RVVQ,J!K!%q2 JJ ( # # #	 0
 &(XX  /	 	

I.r   root灕Cl?V-?r   float16float32r   c                   ^^ [        TT5      mUc  UOTR                  UTS9nUc  UOTR                  UTS9nTR                  UTS9nUU4S jnTR                  SS/TS9n[        U/UQ7X#U4S.6nTR                  UR                  5      (       d   eUR
                  R                  UR                  R                  s=:X  a  T:X  d   e   eUR                  R                  UR                  R                  s=:X  a  T:X  d   e   eg )Nr   c                 2   > TR                  X-
  S-  T5      $ )Nr*   astype)r6   r   r   rN   s     r   r7   %TestBracketRoot.test_dtype.<locals>.f   s    99ah1_e44r   rc   rd   )r=   r>   r   )
r   rC   r   r   rL   r   r   r   r   r   )	rM   r   r=   r>   r   rN   r7   r   r   s	       ``   r   
test_dtypeTestBracketRoot.test_dtype   s     E"|tD)F|tD)Fzz$ez,	5 **eT]%*8ALLdTGLvvckk""""vv||svv||4u44444vv||svv||4u44444r   c           	         Sn[         R                  " [        US9   [        S SS5        S S S 5        Sn[         R                  " [        US9   [        S SS5        S S S 5        [         R                  " [        US9   [        S SS	5        S S S 5        [         R                  " [        US9   [        S
 SSS	S9  S S S 5        [         R                  " [        US9   [        S SSS	S9  S S S 5        [         R                  " [        US9   [        S SSS	S9  S S S 5        Sn[         R                  " [        US9   [        S SSSS9  S S S 5        Sn[         R                  " [        US9   [        S UR                  SS/5      UR                  / SQ5      5        S S S 5        Sn[         R                  " [        US9   [        S SSSS9  S S S 5        [         R                  " [        US9   [        S SSSS9  S S S 5        [         R                  " [        US9   [        S SS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N~= f! , (       d  f       GN_= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f) N`func` must be callable.matchr   rk   ...must be numeric and real.c                     U $ r   r   r   s    r   r   7TestBracketRoot.test_input_validation.<locals>.<lambda>       Ar   y            ?c                     U $ r   r   r   s    r   r   r      r   r         @      ?c                     U $ r   r   r   s    r   r   r      r   r   r=   c                     U $ r   r   r   s    r   r   r      r   r   r>   c                     U $ r   r   r   s    r   r   r      r   r   r<   0All elements of `factor` must be greater than 1.c                     U $ r   r   r   s    r   r   r     r   r   rz   	broadcastc                     U $ r   r   r   s    r   r   r     r   r   )r*   rk   r/   )`maxiter` must be a non-negative integer.c                     U $ r   r   r   s    r   r   r     r   r   r{   )rr   c                     U $ r   r   r   s    r   r   r     r   r   r}   c                     U $ r   r   r   s    r   r   r     r   r   	shrubbery)pytestraises
ValueErrorr   	ExceptionrC   rM   rN   messages      r   test_input_validation%TestBracketRoot.test_input_validation   s    -]]:W5$A& 6 1]]:W5+ua0 6]]:W5+r40 6]]:W5+r148 6]]:W5+r148 6]]:W5+r1T: 6 E]]:W5+r1S9 6 ]]9G4+rzz2r(';RZZ	=RS 5 >]]:W5+r1c: 6]]:W5+r1b9 6]]:W5+r1kB 65A 65 6555555555 65
 54 655555s   H6I=I-I,I>J<J"-1J4K0KK(6
I
I
I),
I;>
J
J"
J14
K
K
K%(
K6c                 
  ^^ U4S jm[        TTR                  S5      TR                  S5      5      nUR                  (       d   eS mTR                  S5      TR                  S5      4n[        T/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S
 m[        TTR                  S5      TR                  S5      TR                  S5      S9nUR                  (       d   e[        UR                  T" UR                  S5      5        U4S jmSTl
        [        TTR                  S5      TR                  S5      5        TR                  S:X  d   eSTl
        [        TTR                  S5      TR                  S5      SS9nUR                  S:X  d   e[        UR                  TR                  S5      SS9  [        UR                  TR                  S5      SS9  [        R                  " SS9   [        TTR                  S5      TR                  S5      SS9nS S S 5        [        UR                  TR                  S5      SS9  [        R                  " SS9   [        TTR                  S5      TR                  S5      SS9nS S S 5        [        UR                  TR                  S5      SS9  [        R                  " SS9   [        TTR                  S5      TR                  S5      SS9nS S S 5        UR                  (       a   eg ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       ND= f) Nc                 Z   > TR                  U R                  S5      (       d   eU S-  S-
  $ )Nzreal floatingc   r0   isdtyper   r   s    r   r7   -TestBracketRoot.test_special_cases.<locals>.f  s,    ::agg77777Q;r         g      @c                     U S-
  $ )Nr.   r   r   s    r   r7   r      s    r6Mr         rr   r   r?   r   c                     X-  S-
  $ r2   r   r6   cs     r   r7   r   +  s    37Nr   r         ?      @r   r*   c                 2   > T=R                   S-  sl         U $ r2   r3   r5   s    r   r7   r   5  r9   r   i   g      $@r   rk           gV瞯<)atolignore)overr   g      $g      r   r0   )r   rC   rL   r   r   rI   rH   rK   r	   r   r4   r@   errstate)rM   rN   r   r   r7   s    `  @r   test_special_cases"TestBracketRoot.test_special_cases  s   	 Arzz#

2?{{{	 ::c?BJJrN3A333vv(svv((vww!||xx1}}zzR	 Arzz#

2!#B1{{{#&&!-	
 aC"**R.9ww!|| Arzz"~rzz##$& xx1}}

2U;

2U; [[h'2::b>2::c?%&(C ( 	

2U;[[h'2::d#3RZZ_%&(C ( 	

2U; [[h'2::b>2::c?%&(C ( ;;; ('
 (' ('s$   5+M +M#+M4
M #
M14
Nc           	      &   S n[         R                  " SS/5      n[        US[         R                  * SU4S9nS n/ SQn/ S	Qn/ S
Qn/ SQn[         R                  * S[         R                  * [         R                  * S[         R                  * [         R                  * [         R                  * /nS[         R                  SS[         R                  SSS/n[        XXgXU4S9n[        S S[         R                  * SS9nUR                  (       d   eg )Nc                 4    [         R                  " U 5      U-
  $ r   r@   exp)r6   r\   s     r   r7   )TestBracketRoot.test_bug_fixes.<locals>.f_  s    66!9q= r   g(\?gffffff?r}   r   )r:   r=   r>   r   c                 8    [         R                  " X-  5      U-
  $ r   r	  )r6   r\   r   s      r   r7   r  f  s    66!#;?"r   )gi<?gx?gt\c?gL0+?gt4?gj~?gE.K?g'2L?)r   r   r   r   r   r   r   r   )gʷG;g_.:
@gbG g9jgWM!?geg~:ZgV^ܿ)gʷG;g/B_@gŎzgH_sgЫ?gˆ-r   r   r   r:   r;   r=   r>   r   c                     U S-   $ )Ng      ?r   r   s    r   r   0TestBracketRoot.test_bug_fixes.<locals>.<lambda>x  s    a$hr         )r:   r=   r>   )r@   rC   r   r   rL   )	rM   r7   r\   r   r   r:   r;   r=   r>   s	            r   test_bug_fixesTestBracketRoot.test_bug_fixesX  s    	! JJd|$A2RVVG!1%H	#1.B0bffWrvvgrBFF7RVVGBFFBBFFBB7ACPQFS .DwQO{{{r   r   r   c                 N   S nUR                  SUR                  S9nUR                  / SQUR                  S9nUR                  / SQ[        X5      S9S S 2UR                  4   n[        X4U4SU0S9n[        X7R                  U4SU0S9nXe-   n	[        UR                  U	5        g )Nc                    XU-   -
  $ r   r   r6   r   r\   s      r   r7   &TestBracketRoot.test_kwargs.<locals>.f~  s    A;r   r   r   r0   r?   r*   r?   r*   rk   r\   r   r   )
zerosr   rC   r   newaxisr   r   r   r	   r6   
rM   rN   r   r7   ar   r\   r   r   r   s
             r   test_kwargsTestBracketRoot.test_kwargs{  s    	 HHRrzzH*JJy

J3JJy(:J;ArzzMJq1$Qx@??!sAhGes#r   r   )__name__
__module____qualname____firstlineno__r   markparametrizerU   r7   r@   r~   re   r   r   r   r   r   r  r  r  __static_attributes__r   r   r   r"   r"   ,   s   [[V%GH[[Z7[[\=9[[^];G < : 8 IGR: [[S3D$(C"DE[[Vb$Z0[[VaY/[[XQx0; 1 0 1 F; [[Wuwvy&IJ2C K2Ch/: [[VeeU^%<=[[Vb$Z0[[VaY/[[W&GH5 I 0 1 >5%CNBH!F [[Wy)&<=$ >$r   r"   c                   F   \ rS rSrS rS rSSSSSSS.S jr\R                  R                  SS5      \R                  R                  S	S
5      \R                  R                  SS
5      S 5       5       5       r
S r\R                  R                  SSSS/45      \R                  R                  SS5      \R                  R                  SSS/5      \R                  R                  SSS/5      S 5       5       5       5       r\R                  R                  SSS9S 5       r\R                  R                  SSS/5      \R                  R                  SS5      \R                  R                  S S!5      \R                  R                  S"S#5      S$ 5       5       5       5       r\R                  R                  S%S&5      \R                  R                  S"S'5      S( 5       5       r\R                  R                  S)S*5      \R                  R                  S"S+5      S, 5       5       r\R                  R                  S-S.5      S/ 5       r\R                  R                  S0\" 5       S1S2S3/5      S4 5       rS5 rS6 rS7 r\R                  R                  SS8S9/5      S: 5       rS;rg)<TestBracketMinimumi  c                 "   ^ U4S jmSTl         T$ )Nc                 B   > T=R                   S-  sl         X-
  S-  U-   $ )Nr0   r?   r3   )r6   r  br7   s      r   r7   $TestBracketMinimum.init_f.<locals>.f  s     GGqLGEA:>!r   r   r3   )rM   r7   s    @r   init_fTestBracketMinimum.init_f  s    	" r   c                    UR                  UR                  UR                  :  UR                  UR                  :  -  5      (       d   eUR                  UR                  UR
                  :  UR                  UR
                  :  -  UR                  UR
                  :  UR                  UR
                  :  -  -  5      (       d   eg r   )r   r   r   r   r   r   r   )rM   resultrN   s      r   assert_valid_bracket'TestBracketMinimum.assert_valid_bracket  s    vvYY"vyy699'<=
 
 	
 
 vvYY&))#		FII(=>yy699$VYY)>?@
 
 	
 
r   N)r:   r;   r<   r=   r>   r   c          	      d    Sn[        XqX$XSU45       VV	s0 s H  u  pU	c  M
  X_M     sn	n$ s  sn	nf )Nr:   r;   r=   r>   r<   r   )r   )
rM   r:   r;   r<   r=   r>   r   namesnamevals
             r   
get_kwargsTestBracketMinimum.get_kwargs  sG     A'*54QU2V'W
'W)$ DI'W
 	
 
s   	,,r$   )l	   ^0#,N0Lb*& l	   }SES].HMa l	   FDuBP_KU r%   r&   r'   c           	         [         R                  R                  U5      nUR                  S5      UR                  S5      4nUR                  UR                  SS9/ SQ-  5      u  pxpXx-   nX-   nU
S-  n
U(       a  UR                  UR                  5       * S-  UR                  S9n[        UR                  UR                  X}-
  * U-  5      UR                  U
5      -  5      5      nXU-
  X* -  -  -   nXU-
  XS-
  * -  -  -   nUS:  a  XU-
  XS-
  * -  -  -   OUnUS-  US-  :  a  US-  nXU-
  X* -  -  -   UUnnnOS n[        UR                  UR                  Xx-  5      UR                  U
5      -  5      5      nXxX-  -  -
  nUS:  a  XxXS-
  -  -  -
  OUnUS:  a  XxXS-
  -  -  -
  OUnUS-  US-  :  a  US-  nXxX-  -  -
  UUnnnU R                  5       nS nU(       a  U* U* U* pnS Ub  U* OS nnU* U* U* nnnU R                  X|UUXS	9n[        UUR                  U5      40 UD6nUR                  UR                  S
-   :X  d   eUR                  UR                  :X  d   eUR                  U:X  d   e[        UR                  U5        [        UR                   U5        [        UR"                  U5        [        UR$                  U" U/UQ76 5        [        UR&                  U" U/UQ76 5        [        UR(                  U" U/UQ76 5        U R+                  UU5        UR,                  S:X  d   eUR.                  (       d   eg )Nr   rk   r+   )r-   r.   r.   r/   r0   r/   r   r?   r4  r*   r   )r@   rA   rB   rC   r   r   rD   rE   r-  r8  r    rH   rI   r4   r	   r   r   r   r   r   r   r1  rK   rL   )rM   r$   r%   r'   rN   rO   r   r:   d1d2r<   xm0r;   r=   rQ   lowermiddleupperr7   r>   r   r0  s                         r   rU   %TestBracketMinimum.test_nfev_expected  s^    ii##D)

2

2/ !jj);>N)NOhh!::szz|ma/rzz:BDBGGBFFSZ=4#78266&>IJKA$J
22E4ZQ377F:;a%D$JA#66SE qy5!8#Q$J
22E6  %v DBGGBFF38,rvvf~=>?AVY,&E/01uSfsm++#F./!eCVc]**E qy5!8#QVY,&v  %v KKM D3$cC(8ud$D$)6F7UF56E4d6 ! 
 "!RZZ_?? {{fjj1n,,,{{agg%%%zzQ 			5)		6*		5)		1U?T?3		1V#3d#34		1U?T?3!!&"-}}!!!~~~r   c           
      $  ^ U4S jnTR                  STR                  S94nTR                  / SQ5      nTR                  / SQ5      nTR                  / SQ5      nTR                  TR                  * STR                  * TR                  * S/5      n[	        X%XFUUS	S
9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S /n[        X5       VVs/ s H  u  p4U[        U5         " U5      PM     snn$ s  snnf )Nc                     U S-
  S-  $ )Nr{   r?   r   r   s    r   r   :TestBracketMinimum.test_flags.<locals>.f.<locals>.<lambda>  s    C!|r   c                     U $ r   r   r   s    r   r   rE    r   r   c                     U $ r   r   r   s    r   r   rE    r   r   c                 :   > TR                  TR                  5      $ r   )rC   r   r   s    r   r   rE    s    rzz"&&1r   c                     U S-  $ Nr?   r   r   s    r   r   rE    s    q!tr   r   r   s        r   r7   (TestBracketMinimum.test_flags.<locals>.f  sF    +  1#	%E 25R=E#a&M!$===r   r/   r   )r   r   r   r         @)r   r   r   r   r   )r   r   r   r          @r   g       @r*   )r:   r;   r=   r   rr   )r   r   rC   r   r    r   r   r   r   r   r   r   r
   rK   )
rM   rN   r7   r   r:   r=  r;   r=   r0  reference_flagss
    `        r   r   TestBracketMinimum.test_flags  s    	> 		!288	,.jj67jj23jj23zzBFF7D266'BFF7C@A!!c'+Q8 **coox&)mmS^^&)nn&6=?XX % G 	7r   minimumr   r   r   r   r=   r`   r>   r/   c           
        ^^ [        TT5      mUc  UOTR                  UTS9nUc  UOTR                  UTS9nTR                  UTS9nUU4S jn/ SQu  pxn	[        UTR                  UTS9TR                  UTS9TR                  U	TS9X#U4S9n
TR                  U
R                  5      (       d   eU
R
                  R                  U
R                  R                  s=:X  a"  U
R                  R                  s=:X  a  T:X  d   e   eU
R                  R                  U
R                  R                  s=:X  a"  U
R                  R                  s=:X  a  T:X  d   e   eg )Nr   c                 2   > TR                  X-
  S-  T5      $ rJ  r   )r6   rP  r   rN   s     r   r7   )TestBracketMinimum.test_dtypes.<locals>.f  s    99akA-u55r   )rc   r   rd   r  )r   rC   r    r   rL   r   r   r   r   r   r   r   )rM   rP  r=   r>   r   rN   r7   r:   r=  r;   r0  s       ``     r   test_dtypesTestBracketMinimum.test_dtypes  s+   
 E"|tD)F|tD)F**WE*2	6 +#!rzz#Uz+Cu1M

3e
,4'
 vvfnn%%%%yy&))//MVYY__MMMMMMyy&))//MVYY__MMMMMMr   Tzstr/object arrays)np_onlyreasonc                 n   Sn[         R                  " [        US9   [        S SSS9  S S S 5        Sn[         R                  " [        US9   [        S UR	                  S5      5        S S S 5        [         R                  " [        US9   [        S	 UR	                  S5      SS9  S S S 5        [         R                  " [        US9   [        S
 UR	                  S5      SS9  S S S 5        [         R                  " [        US9   [        S UR	                  S5      SS9  S S S 5        [         R                  " [        US9   [        S UR	                  S5      SS9  S S S 5        [         R                  " [        US9   [        S UR	                  S5      SS9  S S S 5        Sn[         R                  " [        US9   [        S UR	                  S5      SS9  S S S 5        Sn[         R                  " [        US9   [        S UR	                  SS/5      / SQS9  S S S 5        Sn[         R                  " [        US9   [        S UR	                  S5      SSS9  S S S 5        [         R                  " [        US9   [        S UR	                  S5      SSS9  S S S 5        [         R                  " [        US9   [        S  UR	                  S5      SS!S9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNf= f! , (       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N\= f! , (       d  f       GN.= f! , (       d  f       GN= f! , (       d  f       g = f)"Nr   r   r   rk   )r:   r   c                     U S-  $ rJ  r   r   s    r   r   :TestBracketMinimum.test_input_validation.<locals>.<lambda>/      q!tr   r   c                     U S-  $ rJ  r   r   s    r   r   rZ  1  r[  r   c                     U S-  $ rJ  r   r   s    r   r   rZ  3  r[  r   r;   c                     U S-  $ rJ  r   r   s    r   r   rZ  5  r[  r   r   c                     U S-  $ rJ  r   r   s    r   r   rZ  7  r[  r   r   c                     U S-  $ rJ  r   r   s    r   r   rZ  9  r[  r   r   r   c                     U $ r   r   r   s    r   r   rZ  =  s    qr   rz   z/Array shapes are incompatible for broadcasting.c                     U S-  $ rJ  r   r   s    r   r   rZ  A  r[  r   r   r   )r   r   r`   r   c                     U S-  $ rJ  r   r   s    r   r   rZ  E  r[  r   r{   )r;   rr   c                     U S-  $ rJ  r   r   s    r   r   rZ  G  r[  r   r}   c                     U S-  $ rJ  r   r   s    r   r   rZ  I  r[  r   ekki)r   r   r   r    rC   r   s      r   r   (TestBracketMinimum.test_input_validation%  s^    -]]:W5T21- 6 1]]:W5^RZZ-=> 6]]:W5^RZZ^F 6]]:W5^RZZ^F 6]]:W5^RZZ^$G 6]]:W5^RZZ^$G 6]]:W5^RZZ^DI 6 E]]:W5["**R.E 6 D]]:W5^RZZR-A|T 6 >]]:W5^RZZ^CP 6]]:W5^RZZ^BO 6]]:W5^RZZ^FS 65= 65 655555555555 65 65 655555s   K K2	LLL( L:=M<M; M0>N<N:N& 
K/2
L
L
L%(
L7:
M	
M
M-0
M?
N
N#&
N4r:   r   r=  )r_   皙?g333333?r;   )皙?皙?r^   Nr   ))ra   r   )r  r   )ri  r   )rj  r   )g@r   )gffffff5@r   )gffffff^@r   )g@r   )gr   )g)r   )gfffffFbr   c           
      h   U R                  5       nU R                  X[        [        UR                  U5      5      S9n[        XeR	                  X%R                  S940 UD6nU R                  X5        UR                  S:X  d   eUR                  (       d   eUR                  UR                  :X  d   eg )Nr:   r;   r   r   r   )r-  r8  r   r   rC   r    r   r1  rK   rL   rH   r4   )	rM   r:   r=  r;   r   rN   r7   r   r0  s	            r   test_scalar_no_limits(TestBracketMinimum.test_scalar_no_limitsK  s     KKMSc"**d>S8TU!!ZZ::Z%FQ&Q!!&-}}!!!~~~{{agg%%%r   zxl0,xm0,xr0,xmin))rz         ?r   r   )r         @r   r   )rM  r   rL  r   )g      (@      0@      4@r   )Nrp  r   r   )Nrq  r   r   )Nr   rL  r   )Nrr  rs  r   ))r   r   )gYnr   )g#B;r   )ri  r   )rj  r   )rk  r   c                 Z   U R                  5       nU R                  XU[        [        UR                  U5      5      S9n[        XvR	                  U5      40 UD6n	U R                  X5        U	R                  S:X  d   eU	R                  (       d   eU	R                  UR                  :X  d   eg )N)r:   r;   r=   r   r   )r-  r8  r   r   rC   r    r1  rK   rL   rH   r4   )
rM   r:   r=  r;   r=   r   rN   r7   r   r0  s
             r   test_scalar_with_limit_left.TestBracketMinimum.test_scalar_with_limit_lefta  s    : KKMS&+C

D,A&B ! D!!ZZ_??!!&-}}!!!~~~{{agg%%%r   zxl0,xm0,xr0,xmax))rj  333333?rk  r   )r_   333333?ri  r   )皙ɿ皙r   r   )3333335333331gffffff,r   )rj  rw  Nr   )r_   rx  Nr   )ry  rz  Nr   )r{  r|  Nr   ))g?r   )g?r   )gffffff?r   )rz   r   c                 `  ^ U R                  5       n[        U4S jU 5       5      nU R                  XXES9n[        UTR	                  UTR
                  S940 UD6n	U R                  U	T5        U	R                  S:X  d   eU	R                  (       d   eU	R                  UR                  :X  d   eg )Nc              3   X   >#    U  H  nTR                  UTR                  S 9v   M!     g7fr   NrC   r   .0argrN   s     r   	<genexpr>BTestBracketMinimum.test_scalar_with_limit_right.<locals>.<genexpr>  "     G$3RZZ2::Z6$   '*)r:   r;   r>   r   r   r   )r-  r   r8  r    rC   r   r1  rK   rL   rH   r4   )
rM   r:   r=  r;   r>   r   rN   r7   r   r0  s
         `   r   test_scalar_with_limit_right/TestBracketMinimum.test_scalar_with_limit_right  s    4 KKMG$GGSH!!RZZ2::Z%FQ&Q!!&"-}}!!!~~~{{agg%%%r   zxl0,xm0,xr0,xmin,xmax,args))rj  rw  rk  Nr   r   r   )gffffff?333333?rq  rw  Nrw  r   )g@      
@g333333@N皙X@r  r   )rk         @r/   L:Nr  r   )Nrw  NNr   r  )Nr  Nrw  Nr  )Nr  NNr  r  )Nr  Nr  Nr  c                 T   U R                  5       nU R                  X4U[        [        UR                  U5      5      S9n	[        XR	                  U5      40 U	D6n
U
R                  S:X  d   eUS   U
R                  U
R                  4;   d   eU
R                  UR                  :X  d   eg )N)r;   r=   r>   r   r}   r   )r-  r8  r   r   rC   r    rK   r   r   rH   r4   )rM   r:   r=  r;   r=   r>   r   rN   r7   r   r0  s              r   test_minimum_at_boundary_point1TestBracketMinimum.test_minimum_at_boundary_point  s    z KKMS$&+C

D,A&B ! D!!ZZ_??}}"""Aw699fii0000{{agg%%%r   rg   rh   rj   rl   c                 F  ^ ^^ U(       a'  [         R                  " SSS5      R                  U5      OSnUS4nSm[         R                  UU 4S j5       nT R	                  5       n[         R
                  R                  S5      nUR                  US	9* nUR                  US	9n	XR                  US	9X-
  -  -   n
S
U-  S
U	-  pU(       a8  UR                  US	9S:  n[         R                  * [         R                  sX'   X'   UR                  US	9S-   nU" XXXU5      R                  5       n[        U4S jU 5       5      n[        UTR                  U
5      TR                  U5      TR                  U	5      TR                  U5      TR                  U5      TR                  U5      UTS9	n/ SQnU Ho  nU Vs/ s H  nTR                  [        UU5      5      PM      nn[        UU5      n[        [        UTS9TR                  U5      5        UR                   U:X  a  Mo   e   UR"                  R$                  TR&                  :X  d   eU(       a%  TR)                  UR"                  SS 5      (       d   eUR*                  R$                  TR,                  :X  d   eUR.                  R$                  TR,                  :X  d   eUR0                  R$                  TR,                  :X  d   eTR3                  UR0                  5      UR4                  S-
  :X  d   eT R7                  UT5        [        UR8                  U" UR:                  /UQ76 5        [        UR<                  U" UR>                  /UQ76 5        [        UR@                  U" URB                  /UQ76 5        g s  snf )Nrn   ro   ri   r^   r   r.   c                 @   > [        TR                  5       XX#XETUS4S9	$ )Nr   )r:   r;   r=   r>   r<   rr   r   )r    r-  )	r=  r:   r;   r=   r>   r<   r  rr   rM   s	          r   bracket_minimum_singleETestBracketMinimum.test_vectorization.<locals>.bracket_minimum_single  s(    #DKKM3S)-g*+S3 3r   rx   r+   ry   rz   r{   c              3   X   >#    U  H  nTR                  UTR                  S 9v   M!     g7fr  r  r  s     r   r  8TestBracketMinimum.test_vectorization.<locals>.<genexpr>)  r  r  )r:   r;   r=   r>   r<   r   rr   )	r   r   r   r   r   r   rL   rH   rI   r|   r0   r}   r*   )"r@   r~   r   r   r-  rA   rB   r   r   r   r    rC   r   r	   r   r   rg   rL   r   r   r   rK   r   rH   rI   r   r4   r1  r   r   r   r   r   r   )rM   rg   rN   r  r   r  r7   rO   r:   r;   r=  r=   r>   r   r<   r   r   r   r   r   r   r   rr   s   ` `                   @r   r   %TestBracketMinimum.test_vectorization  s    <ABKKtR(007c2w		3 
	3
 KKMii##G,zzuz%%jjej$JJEJ*ci88Wc#gd


&,A "wDGTW'#-%c4KQQSG$GGq"**S/rzz##%::c?D9I$&JJt$4RZZ=O$(';
 ODBFG$3

73#56$HGsD)HHX"5rxx7IJ>>U***	  {{  BGG+++66#++a+,,,,zz288+++xx~~)))ww}}(((vvcgg!''A+---!!#r*#&& 04 01#&& 04 01#&& 04 01 Hs   8%Nc                   ^ U4S jn[        UTR                  STR                  S9SS9nUR                  (       d   eS nTR                  S5      TR                  S5      TR                  S	5      pen[        X%XFS
S9n[	        UR
                  U5        [	        UR                  U5        [	        UR                  U5        S n[        UTR                  S5      TR                  S5      S9nUR                  (       d   e[        UR                  U" UR
                  S5      5        U R                  5       nTR                  S5      TR                  S5      TR                  S5      penTR                  S5      TR                  S5      4n[        X%XFUS9nUR                  S:X  d   e[	        UR
                  U5        [	        UR                  U5        [	        UR                  U5        [	        UR                  U" U/UQ76 5        [	        UR                  U" U/UQ76 5        [	        UR                  U" U/UQ76 5        g )Nc                 Z   > TR                  U R                  S5      (       d   eU S-  S-
  $ )Nnumericb   r0   r   r   s    r   r7   0TestBracketMinimum.test_special_cases.<locals>.fG  s,    ::aggy11117Q;r   r   r   r/   r^  c                     U S-  S-
  $ )Nr?   r.   r   r   s    r   r7   r  O  s    a4"9r   r   r   rM  r   )r:   r;   rr   c                     XS-  -  S-
  $ )Nr?   r0   r   r   s     r   r7   r  Y  s    T6A:r   r   r   r*   ry  r   r   rm  )r    rC   r   rL   r
   r   r   r   r	   r   r-  r4   r   r   )rM   rN   r7   r0  r:   r=  r;   r   s    `      r   r  %TestBracketMinimum.test_special_casesB  s   
	 "!RZZ2::Z%FAN~~~	 

3C"**R.#!!cAF		3'		3'		3'	 "!RZZ_2::b>J~~~		1VYY?3 KKM

4("**T*:BJJsO#

2

2/!!cFww!||		3'		C(		3'		1S=4=1		1S=4=1		1S=4=1r   c                    ^^^ TR                  S5      TR                  S5      smmUUU4S jn[        UTR                  S5      TTS9n[        UR                  T5        g )NgJg7e4?g[2\WZ?c                 \   > TR                  T5      TR                  T5      p!X!-
  U -  S-  * $ Nr}   rE   r6   log_alog_br>   r=   rN   s      r   r7   0TestBracketMinimum.test_gh_20562_left.<locals>.fs  s/    66$<5mQ&+++r   g_\ݶ?r=   r>   )rC   r    r	   r   rM   rN   r7   r0  r>   r=   s    `  @@r   test_gh_20562_left%TestBracketMinimum.test_gh_20562_leftn  sT     ZZ
+RZZ
-C
d	, "!RZZ0B%C$'+-		4(r   c                    ^^^ TR                  S5      TR                  S5      smmUUU4S jn[        UTR                  S5      TTS9n[        UR                  T5        g )Ng[2\WZgJg7e4̿c                 ^   > TR                  T* 5      TR                  T* 5      p!X!-
  U -  S-  $ r  r  r  s      r   r7   1TestBracketMinimum.test_gh_20562_right.<locals>.f  s0    664%="&&$-5]A%**r   g_\ݶr  )rC   r    r	   r   r  s    `  @@r   test_gh_20562_right&TestBracketMinimum.test_gh_20562_right{  sT     ZZ,bjj.E
d	+ "!RZZ0C%D'+$8		4(r   r   r   c                 N   S nUR                  SUR                  S9nUR                  / SQUR                  S9nUR                  / SQ[        X5      S9S S 2UR                  4   n[        X4U4SU0S9n[        X7R                  U4SU0S9nXe-   n	[        UR                  U	5        g )Nc                    XU-   -
  S-  $ rJ  r   r  s      r   r7   )TestBracketMinimum.test_kwargs.<locals>.f  s    QK!##r   r   r   r  r  r\   r  )
r  r   rC   r   r  r   r   r   r	   r6   r  s
             r   r  TestBracketMinimum.test_kwargs  s    	$ HHRrzzH*JJy

J3JJy(:J;ArzzMJ!!aT3(C1ooQD#qJes#r   r   )r   r!  r"  r#  r-  r1  r8  r   r$  r%  rU   r   rT  skip_xp_backendsr   rn  ru  r  r  r   r   r  r  r  r  r&  r   r   r   r(  r(    s   
 44dQU
 [[	
 [[Z7[[\=9E : 8EN84 [[Y(?@[[W&GH[[Vb$Z0[[VaY/N 0 1 I AN$ [[!!$7J!K#T L#TJ [[US$K0[[U$56[[U$9: [[	
&	 ; 7 1& [[	
" [[ 

&
#8& [[	
  [[ 
&!2& [[$X	
[x&y[x& [[Wuw	&JK02 L02d*2X)) [[Wy)&<=$ >$r   r(  )r   numpyr@   scipy.optimize._bracketr   scipy.optimize.elementwiser   r   r   r   (scipy._lib._elementwise_iterative_method_lib_elementwise_iterative_methodr   scipyr   scipy._lib._array_api_no_0dr	   r
   r   scipy._lib._array_apir   r   r   r    r"   r(  r   r   r   <module>r     s}      ,A A 6 6 9 9 = < Z$ Z$ !Z$x
 ?#J$ J$ $J$r   