
    (ph                     .   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r  S SKJrJrJrJr  S SKJr  S SKJr  S rS	 rS
rSr\ R6                  R9                  S\S9\ R6                  R9                  S\S9\\ R6                  R;                  S5       " S S5      5       5       5       5       r\ R6                  R9                  S\S9\ R6                  R9                  S\S9\\ R6                  R;                  S5       " S S5      5       5       5       5       rg)    N)_ELIMITS)bracket_rootbracket_minimum)stats)xp_assert_closexp_assert_equalxp_assert_lessarray_namespace)xp_ravel)array_api_compatiblec                      [        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      T/var/www/html/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   z5Array API does not support fancy indexing assignment.z*JAX arrays do not support item assignment.array_api_strict)reasonz	jax.numpyskip_xp_backendsc            	          \ 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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 $ Nr2   countxfs    r   r9   -TestBracketRoot.test_nfev_expected.<locals>.fG       GGqLGHr   )xl0xr0factorxmin)r<   r=   r>   r=   r<   r?   xmaxr      )nprandomdefault_rngasarrayceillogdictpopr6   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   signsr9   s                       @r   test_nfev_expected"TestBracketRoot.test_nfev_expected4   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)rO   qps      r   r9   TestBracketRoot.f   s%    ,,.221599r   r^   333333?皙?gffffff?r0   r?   Nr@   r1   r>   333333?rA   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   r9   rE   r   rL   r   r   )rO   r^   r?   r@   r>   rP   r   s          r   
test_basicTestBracketRoot.test_basic   sW     DFFBJJu$5t$#)A0@B("''#&&/:r   shape   r,      r,   rA   rA   c                   ^ ^^ 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 Hs  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5        Mu     [)        UR                  S5      5      nUR*                  R,                  UR.                  :X  d   eU(       a%  UR1                  UR*                  SS 5      (       d   eUR2                  R,                  UR4                  :X  d   eUR6                  R,                  UR4                  :X  d   eUR8                  R,                  UR4                  :X  d   eUR;                  UR8                  5      TR
                  S-
  :X  d   e[=        UR>                  UR@                  5        [        URB                  UR                  T RD                  " UR>                  /UQ76 5      5        [        URF                  UR                  T RD                  " UR@                  /UQ76 5      5        g s  snf )N皙?rk   r`   r0   c                 4   > [        TR                  XX#XE4TS9$ )Nr?   r@   r>   r   maxiter)r   r9   )r<   r=   r?   r@   r>   r^   rt   rO   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$ r4   )f_evalsr9   )r   r   r9   rO   s     r   r9   -TestBracketRoot.test_vectorization.<locals>.f   s$    IINI664*6**r   r   # r-        @@      ?      ?rs   )r   r   r   r   rN   rJ   rK   rP         ?r2   rA   )$rB   linspacereshapefloat64	vectorizerx   rC   rD   infravelrE   tuplemapr   getattrr   r   stackr   ri   r
   rN   dtypeboolallrM   int32rJ   rK   maxr	   r   r   r   r9   r   )rO   ri   rP   r^   r   ru   rQ   r<   r=   r?   r@   ir>   refsr   attrsattrrefref_attrres_attrxp_testr9   rt   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HNNE2	  ""**R.1{{  GLL00066#++a+,,,,zz288+++xx~~)))ww}}(((vvcgg!))a-///svvsvv&

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

466#&&+@4+@ AB Hs   5%O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}    r8   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r8   rP   s    r   r   r      s    q266zr   c                     U $ r   r   r   s    r   r   r          qr   )zipintxsjsfuncsr8   jrP   s        r   r9   %TestBracketRoot.test_flags.<locals>.f   sF    &'') 	"E 25R=E#a&M!$===s    Ar1   r   )      r   r   r         @)r2   r2   r2   r2   r      r2   rA   r,   )r<   r=   r?   r@   r   rt   )arangeint64r   rE   r   eim_ECONVERGEDr   	_ECONVERR
_EVALUEERR
_EINPUTERRr   r   rM   )rO   rP   r9   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                 H  ^^	 [        UT5      m[        UR                  S5      5      m	Uc  UOUR                  UTS9nUc  UOUR                  UTS9nUR                  UTS9nUU	4S jnUR                  SS/TS9n[        U/UQ7X#U4S.6nU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   r   c                 2   > TR                  X-
  S-  T5      $ )Nr,   astype)r8   r   r   r   s     r   r9   %TestBracketRoot.test_dtype.<locals>.f   s    >>18/599r   re   rf   )r?   r@   r   )r   r
   rE   r   r   rN   r   r   r   r   r   )
rO   r   r?   r@   r   rP   r9   r   r   r   s
       `    @r   
test_dtypeTestBracketRoot.test_dtype   s    E"!"**R.1|tD)F|tD)Fzz$ez,	: **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9  S S S 5        [         R                  " [        US9   [        S SS[        5       S9  S S S 5        [         R                  " [        US9   [        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   rm   ...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   helloc                     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   r|   	broadcastc                     U $ r   r   r   s    r   r   r     r   r   )r,   rm   r1   )`maxiter` must be a non-negative integer.c                     U $ r   r   r   s    r   r   r     r   r   r}   )rt   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   rB   objectsum	ExceptionrE   rO   rP   messages      r   test_input_validation%TestBracketRoot.test_input_validation   s    -]]:W5$A& 6 1]]:W5+ua0 6]]:W5+r73 6]]:W5+r126 6]]:W5+r168< 6]]:W5+r1S9 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   II=I*-I< JJ J2=1KK K'/K8
I
I'*
I9<
J
J 
J/2
K
K
K$'
K58
Lc                 >  ^^ [        UR                  S5      5      mU4S jm[        TUR                  S5      UR                  S5      5      nUR                  (       d   eS mUR                  S5      U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UR                  S5      UR                  S5      U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UR                  S5      UR                  S5      5        TR                  S	:X  d   eSTl        [        TUR                  S5      UR                  S5      S	S9nUR                  S:X  d   e[        UR                  UR                  S5      SS9  [        UR
                  UR                  S5      SS9  [        R                  " SS9   [        TUR                  S5      UR                  S5      SS9nS S S 5        [        UR                  UR                  S5      SS9  [        R                  " SS9   [        TUR                  S5      UR                  S5      SS9nS S S 5        [        UR
                  UR                  S5      SS9  [        R                  " SS9   [        TUR                  S5      U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) Nr   c                 Z   > TR                  U R                  S5      (       d   eU S-  S-
  $ )Nzreal floatingc   r2   isdtyper   r8   r   s    r   r9   -TestBracketRoot.test_special_cases.<locals>.f#  s,    ??177O<<<<7Q;r         g      @c                     U S-
  $ )Nr0   r   r   s    r   r9   r   +  s    r6Mr         rt   r   rA   r   c                     X-  S-
  $ r4   r   r8   cs     r   r9   r   6  s    37Nr   r         @r   r,   c                 2   > T=R                   S-  sl         U $ r4   r5   r7   s    r   r9   r   @  r;   r   i   g      $@r   rm           gV瞯<)atolignore)overr   g      $g      r   r2   )r
   rE   r   rN   r   r   rK   rJ   rM   r   r   r6   rB   errstate)rO   rP   r   r   r9   r   s       @@r   test_special_cases"TestBracketRoot.test_special_cases  s   !"**R.1	 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$   +M,:+M=%+N,
M:=
N
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   rB   exp)r8   r^   s     r   r9   )TestBracketRoot.test_bug_fixes.<locals>.fj  s    66!9q= r   g(\?gffffff?r   r   )r<   r?   r@   r   c                 8    [         R                  " X-  5      U-
  $ r   r  )r8   r^   r   s      r   r9   r  q  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>  s    a$hr         )r<   r?   r@   )rB   rE   r   r   rN   )	rO   r9   r^   r   r   r<   r=   r?   r@   s	            r   test_bug_fixesTestBracketRoot.test_bug_fixesc  s    	! JJd|$A2RVVG!1%H	#1.B0bffWrvvgrBFF7RVVGBFFBBFFBB7ACPQFS .DwQO{{{r   r   )__name__
__module____qualname____firstlineno__r   markparametrizerW   r9   rB   r   rg   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3C K3Cj/: [[VeeU^%<=[[Vb$Z0[[VaY/[[W&GH5 I 0 1 >5"%CNDL!r   r$   c                      \ 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S8rg)9TestBracketMinimumi  c                 "   ^ U4S jmSTl         T$ )Nc                 B   > T=R                   S-  sl         X-
  S-  U-   $ )Nr2   rA   r5   )r8   abr9   s      r   r9   $TestBracketMinimum.init_f.<locals>.f  s     GGqLGEA:>!r   r   r5   )rO   r9   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   )rO   resultrP   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   )
rO   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  rm   r-   )r/   r0   r0   r1   r2   r1   r   rA   r-  r,   r   )rB   rC   rD   rE   r   r   rF   rG   r&  r2  r   rJ   rK   r6   r   r   r   r   r   r   r   r*  rM   rN   )rO   r&   r'   r)   rP   rQ   r   r<   d1d2r>   xm0r=   r?   rS   lowermiddleupperr9   r@   r   r)  s                         r   rW   %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  p4X$   " U5      PM     snn$ s  snnf )Nc                     U S-
  S-  $ )Nr}   rA   r   r   s    r   r   :TestBracketMinimum.test_flags.<locals>.f.<locals>.<lambda>  s    C!|r   c                     U $ r   r   r   s    r   r   r?    r   r   c                     U $ r   r   r   s    r   r   r?    r   r   c                    > TR                   $ r   r   r   s    r   r   r?    s	    rvvr   c                     U S-  $ NrA   r   r   s    r   r   r?    s    q!tr   r.  r   s        r   r9   (TestBracketMinimum.test_flags.<locals>.f  s?    +  %#	%E -0K8KDAEHQKK888s   9r1   r   )r   r   r   r         @)r  r  r  r  r   )r   r   r   r          @r   g       @r,   )r<   r=   r?   r   rt   )r   r   rE   r   r   r   r   r   r   r   r   r   r   rM   )
rO   rP   r9   r   r<   r7  r=   r?   r)  reference_flagss
    `        r   r   TestBracketMinimum.test_flags  s    	9 		!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?   rb   r@   r1   c           
        ^^ [        UT5      m[        UR                  S5      5      mUc  UOUR                  UTS9nUc  UOUR                  UTS9nUR                  UTS9nUU4S jn/ SQu  pxn	[        XeR                  UTS9UR                  UTS9UR                  U	TS9X#U4S9n
U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   r   c                 2   > TR                  X-
  S-  T5      $ rD  r   )r8   rJ  r   r   s     r   r9   )TestBracketMinimum.test_dtypes.<locals>.f  s    >>1;"2E::r   )re   r  rf   r  )r   r
   rE   r   r   rN   r   r   r   r   r   r   r   )rO   rJ  r?   r@   r   rP   r9   r<   r7  r=   r)  r   s       `      @r   test_dtypesTestBracketMinimum.test_dtypes  s;   
 E"!"**R.1|tD)F|tD)F**WE*2	; +#!zz#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_onlyr!   c                    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9  S S S 5        [         R                  " [        US9   [        S UR	                  S5      [        5       S9  S S S 5        [         R                  " [        US9   [        S UR	                  S5      [        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Nv= f! , (       d  f       GNK= 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   rm   )r<   r   c                     U S-  $ rD  r   r   s    r   r   :TestBracketMinimum.test_input_validation.<locals>.<lambda>1      q!tr   y      @      ?c                     U S-  $ rD  r   r   s    r   r   rS  3  rT  r   r   c                     U S-  $ rD  r   r   s    r   r   rS  5  rT  r   zfarcical aquatic ceremonyr=   c                     U S-  $ rD  r   r   s    r   r   rS  8  rT  r   r   c                     U S-  $ rD  r   r   s    r   r   rS  :  rT  r   r   c                     U S-  $ rD  r   r   s    r   r   rS  <  rT  r   r   r   c                     U $ r   r   r   s    r   r   rS  @  s    qr   r|   z+shape mismatch: objects cannot be broadcastc                     U S-  $ rD  r   r   s    r   r   rS  E  rT  r   r   r   )r   r   rb   r   c                     U S-  $ rD  r   r   s    r   r   rS  I  rT  r   r}   )r=   rt   c                     U S-  $ rD  r   r   s    r   r   rS  K  rT  r   r   c                     U S-  $ rD  r   r   s    r   r   rS  M  rT  r   ekki)r   r   r   r   rE   rB   r   r   r   s      r   r   (TestBracketMinimum.test_input_validation'  sh    -]]:W5T21- 6 1]]:W5^RZZ-=> 6]]:W5^RZZ^I 6]]:W5^RZZ^!<> 6 ]]:W5^RZZ^"E 6]]:W5^RZZ^&(K 6]]:W5^RZZ^CH 6 E]]:W5["**R.E 6 @]]: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5A 65 655555 655555 65
 65 655555s   K0L	LL& L8$M
	 MM. N NN$
N60
K?
L
L#&
L58
M

M
M+.
M= 
N
N!$
N36
Or<   r  r7  )ra   皙?g333333?r=   )皙?皙?r`   Nr   ))rc   r   )r  r   )rb  r   )rc  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&  r2  r   r   rE   r   r   r*  rM   rN   rJ   r6   )	rO   r<   r7  r=   r   rP   r9   r   r)  s	            r   test_scalar_no_limits(TestBracketMinimum.test_scalar_no_limitsO  s     KKMSc"**d>S8TU!!ZZ::Z%FQ&Q!!&-}}!!!~~~{{agg%%%r   zxl0,xm0,xr0,xmin))r|         ?r   r  )r         @r   r  )rG  r   rF  r  )g      (@      0@      4@r  )Nri  r   r  )Nrj  r   r  )Nr   rF  r  )Nrk  rl  r  ))r  r  )gYnr  )g#B;r  )rb  r  )rc  r  )rd  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&  r2  r   r   rE   r   r*  rM   rN   rJ   r6   )
rO   r<   r7  r=   r?   r   rP   r9   r   r)  s
             r   test_scalar_with_limit_left.TestBracketMinimum.test_scalar_with_limit_lefte  s    : KKMS&+C

D,A&B ! D!!ZZ_??!!&-}}!!!~~~{{agg%%%r   zxl0,xm0,xr0,xmax))rc  333333?rd  r   )ra   333333?rb  r   )皙ɿ皙r  r   )3333335333331gffffff,r   )rc  rp  Nr   )ra   rq  Nr   )rr  rs  Nr   )rt  ru  Nr   ))g?r  )g?r  )gffffff?r  )r|   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rE   r   .0argrP   s     r   	<genexpr>BTestBracketMinimum.test_scalar_with_limit_right.<locals>.<genexpr>  "     G$3RZZ2::Z6$   '*)r<   r=   r@   r   r   r   )r&  r   r2  r   rE   r   r*  rM   rN   rJ   r6   )
rO   r<   r7  r=   r@   r   rP   r9   r   r)  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))rc  rp  rd  Nr   r   r  )gffffff?333333?rj  rp  Nrp  r  )g@      
@g333333@N皙X@r  r   )rm         @r1   L:Nr  r   )Nrp  NNr   r  )Nr  Nrp  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&  r2  r   r   rE   r   rM   r   r   rJ   r6   )rO   r<   r7  r=   r?   r@   r   rP   r9   r   r)  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   ri   rj   rl   rn   c                   ^ ^^ 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      XUXUTS9	n/ SQnU Hs  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5        Mu     [%        TR                  S5      5      nUR&                  R(                  UR*                  :X  d   eU(       a%  TR-                  UR&                  SS 5      (       d   eUR.                  R(                  TR0                  :X  d   eUR2                  R(                  TR0                  :X  d   eUR4                  R(                  TR0                  :X  d   eTR7                  UR4                  5      UR8                  S-
  :X  d   eT R;                  UT5        [        UR<                  U" UR>                  /UQ76 5        [        UR@                  U" URB                  /UQ76 5        [        URD                  U" URF                  /UQ76 5        g s  snf )Nrp   rq   rk   r`   r  r0   c                 @   > [        TR                  5       XX#XETUS4S9	$ )Nr  )r<   r=   r?   r@   r>   rt   r   )r   r&  )	r7  r<   r=   r?   r@   r>   r#  rt   rO   s	          r   bracket_minimum_singleETestBracketMinimum.test_vectorization.<locals>.bracket_minimum_single  s(    #DKKM3S)-g*+S3 3r   rz   r-   r{   r|   r}   c              3   X   >#    U  H  nTR                  UTR                  S 9v   M!     g7frx  ry  rz  s     r   r}  8TestBracketMinimum.test_vectorization.<locals>.<genexpr>-  r  r  )r<   r=   r?   r@   r>   r   rt   )	r   r   r   r   r   r   rN   rJ   rK   r~   r   r2   r   r,   )$rB   r   r   r   r&  rC   rD   r   r   r   r   rE   r   r   r   r   r   ri   r
   rN   r   r   r   rM   r   rJ   rK   r   r6   r*  r   r   r   r   r   r   )rO   ri   rP   r#  r   r  r9   rQ   r<   r=   r7  r?   r@   r   r>   r   r   r   r   r   r   r   r   rt   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/s$$(dGU ODBFG$3

73#56$HGsD)HHX"5rxx7IJHNNE2	  ""**R.1{{  GLL00066#++a+,,,,zz288+++xx~~)))ww}}(((vvcgg!''A+---!!#r*#&& 04 01#&& 04 01#&& 04 01! Hs   +%M/c                   ^ [        UR                  S5      5      mU4S jn[        X!R                  SUR                  S9SS9nUR                  (       d   eS nUR                  S5      UR                  S	5      UR                  S
5      pen[        X%XFSS9n[        UR                  U5        [        UR                  U5        [        UR                  U5        S n[        X!R                  S	5      UR                  S5      S9nUR                  (       d   e[        UR                  U" UR                  S5      5        U R                  5       nUR                  S	5      UR                  S5      UR                  S5      penUR                  S5      U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 )Nr   c                 Z   > TR                  U R                  S5      (       d   eU S-  S-
  $ )Nnumericb   r2   r   r   s    r   r9   0TestBracketMinimum.test_special_cases.<locals>.fK  s,    ??177I66667Q;r   r   r   r1   rW  c                     U S-  S-
  $ )NrA   r0   r   r   s    r   r9   r  S  s    a4"9r   r   r   rG  r   )r<   r=   rt   c                     XS-  -  S-
  $ )NrA   r2   r   r   s     r   r9   r  ]  s    T6A:r   r  r  r,   rr  r  rf  )r
   rE   r   r   rN   r   r   r   r   r   r   r&  r6   r   r   )	rO   rP   r9   r)  r<   r7  r=   r   r   s	           @r   r
  %TestBracketMinimum.test_special_casesE  s   !"**R.1	 "!ZZ2::Z%FAN~~~	 

3C"**R.#!!cAF		3'		3'		3'	 "!ZZ_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TUR                  :X  d   eg )NgJg7e4?g[2\WZ?c                 \   > TR                  T5      TR                  T5      p!X!-
  U -  S-  * $ Nr   rG   r8   log_alog_br@   r?   rP   s      r   r9   0TestBracketMinimum.test_gh_20562_left.<locals>.fw  s/    66$<5mQ&+++r   g_\ݶ?r?   r@   )rE   r   r   rO   rP   r9   r)  r@   r?   s    `  @@r   test_gh_20562_left%TestBracketMinimum.test_gh_20562_leftr  sX     ZZ
+RZZ
-C
d	, "!RZZ0B%C$'+-vyy   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TUR                  :X  d   eg )Ng[2\WZgJg7e4̿c                 ^   > TR                  T* 5      TR                  T* 5      p!X!-
  U -  S-  $ r  r  r  s      r   r9   1TestBracketMinimum.test_gh_20562_right.<locals>.f  s0    664%="&&$-5]A%**r   g_\ݶr  )rE   r   r   r  s    `  @@r   test_gh_20562_right&TestBracketMinimum.test_gh_20562_right  sX     ZZ,bjj.E
d	+ "!RZZ0C%D'+$8vyy   r   r   )r  r  r  r  r&  r*  r2  r   r  r  rW   r   rN  r"   r   rg  rn  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N [[US$K0[[U$56[[U$9: [[	
&	 ; 7 1& [[	
" [[ 

&
#8& [[	
  [[ 
&!2& [[$X	
[x&y[x& [[Wuw	&JK/2 L/2b+2Z!!r   r   ) r   numpyrB   scipy.optimize._bracketr   scipy.optimize.elementwiser   r   (scipy._lib._elementwise_iterative_method_lib_elementwise_iterative_methodr   scipyr   scipy._lib._array_api_no_0dr   r   r	   r
   scipy._lib._array_apir   scipy.conftestr   r   r   array_api_strict_skip_reasonjax_skip_reasonr  r"   usefixturesr$   r   r   r   r   <module>r     s#     , D 6 6 J J * /  W >09UVk/B+,Q Q -  C WQh
 09UVk/B+,! ! -  C W!r   