+
    /i                     .   R t ^ RIHt ^ RIt^ RIHt ^ RIHt Rt	R t
R tR tR	 tR
 tR tR tR tR tR tR t/ tR t. ERgOt]
]]ERhR]P0                  ! ^4      .]P2                  RRR.	]]]ERhR]P0                  ! ^4      .]P2                  RRR.	]]]ERhR]P0                  ! ^4      .]P2                  RRR.	]RRERhR]P0                  ! ^4      .ERiRRR.	]RRERhR]P0                  ! ^4      .ERiRRR.	]RRERhR]P0                  ! ^4      .]P2                  ) RRR.	.t] U u. uF  p ]! ]! ]V 4      4      NK  	  up tR tR tR t R t!R t"R t#R  t$R! t%R" t&R# t'R$ t(R% t)R& t*R' t+R( t,R) t-R* t.R+ t/R, t0R- t1R. t2R/ t3R0 t4R1 t5R2 t6R3 t7R4 t8R5 t9R6 t:R7 t;R8 t<R9 t=R: t>R; t?R< t@R= tA]P                  ! ]P                  ! ]D4      P                  4      tFR> tGR? tHR@ tIRA tJRB tKRC tLRD tMRE tNRF tO. ERgOtP. ]]] ERh]P                  ^,          ]P                  .]P2                  ^RGRH.	N]!]"]#ERhERjERk.]P2                  ^RIRJ.	N]!]"]#ERhERlERm.]P2                  ^RKRL.	N]!]"]#ERhERnERo.]P2                  ^
RMRN.	N]!]"]#ERhERpERq.]P2                  ^RORP.	N]!]"]#ERhERrERs.]P2                  ^RQRR.	N]!]"]#ERhERtERu.]P2                  ^%RSRT.	N]!]"]#ERhERvERw.]P2                  ^2RURV.	N]!]"]#ERhERxERy.]P2                  ^ARWRX.	N]!]"]#ERhERzER{.]P2                  ^RRYRZ.	N]!]"]#ERhER|ER}.]P2                  ^eR[R\.	N]$]%]&ER~ER^.]P2                  ER^ R].	N]$]%]&ERER^.]P2                  ER^ R^.	N]$]%]&ERER^.]P2                  ER^ R_.	N]'](])ER^ ^.]P2                  RaRbRc.	N]'](])ER^ ^.]P2                  RaRdRe.	N]'](])ER^ ^.]P2                  RaRfRg.	N]'](])ER^ ^.]P2                  RaRhRi.	N]'](])ER^ ^.]P2                  RaRjRk.	N]'](])ER^ ^.]P2                  Ra^Rl.	N]'](])ER^ ^.]P2                  Ra^Rm.	N]'](])ER^ ^.]P2                  Ra^Rn.	N]'](])ER^ ^.]P2                  Ra^Ro.	N]'](])ER^ ^.]P2                  Ra^Rp.	N]'](])ERERRq.]P2                  Rr^Rs.	N]'](])ERERRq.]P2                  Rr^Rt.	N]'](])ERERRq.]P2                  Rr^Ru.	N]'](])ERERRq.]P2                  Rr^Rv.	N]*]+],ERh^ Rr.]P2                  Rw]P                  ^,          Rx.	N]-].]/ER^ ^.]P2                  RRyRz.	N]-].]/ER^ ^.]P2                  RR{R|.	N]-].]/ER^ ^.]P2                  RR}R~.	N]-].]/ER^ ^.]P2                  RRR.	N]-].]/ER^ ^.]P2                  RRR.	N]-].]/ER^ ^.]P2                  RRR.	N]-].]/ER^ ^.]P2                  RRR.	N]-].]/ER^ ^.]P2                  ERRR.	N]-].]/ER^ ^.]P2                  RRR.	N]-].]/ER^ ^.]P2                  RRR.	N]0]1]2ER^ ^.]P2                  RRR.	N]0]1]2ER^ ^.]P2                  RRR.	N]0]1]2ER^ ^.]P2                  RRR.	N]3]4]5ER^ ^.]P2                  RRR.	N]3]4]5ER^ ^.]P2                  RRR.	N]3]4]5ER^ ^.]P2                  RRR.	N]3]4]5ER^ ^.]P2                  RRR.	N]3]4]5ER^ ^.]P2                  RRR.	N]6]7]8ER^ ^.]P2                  RRR.	N]6]7]8ER^ ^.]P2                  RRR.	N]6]7]8ER^ ^.]P2                  RRR.	N]6]7]8ER^ ^.]P2                  RRR.	N]6]7]8ER^ ^.]P2                  RRR.	N]6]7]8ER^ ^.]P2                  RRR.	N]6]7]8ER^ ^.]P2                  RRR.	N]9]:];ER^ ^.]P2                  RRR.	N]9]:];ER^ ^.]P2                  RRR.	N]9]:];ER^ ^.]P2                  RRR.	N]9]:];ER^ ^.]P2                  RRR.	N]9]:];ER^ ^.]P2                  RRR.	N]<]=]>ERR^.]P2                  RRR.	N]<]=]>ERR^.]P2                  RR`R.	N]<]=]>ERR^.]P2                  RERR.	N]<]=]>ERR^.]P2                  RRR.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^	R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^R.	N]?]@]AER^^d.]P2                  R^!R.	N]G]H]IERhERi^.]P2                  Rr^ R.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]J]K]LERER]P                  ^,          .^ ^RR.	N]M]N]OERERR.^ ERRR.	N]M]N]OERERR.^ ERER ER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER	.	N]M]N]OERERR.^ ERER
ER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERERER.	N]M]N]OERERR.^ ERER ER!.	N]M]N]OERERR.^ ERER"ER#.	N]M]N]OERERR.^ ERER$ER%.	N]M]N]OERERR.^ ERER&ER'.	N]M]N]OERERR.^ ERER(ER).	N]M]N]OERERR.^ ERER*ER+.	N]M]N]OERERR.^ ERER,ER-.	N]M]N]OERERR.^ ERER.ER/.	N]M]N]OERERR.^ ERER0ER1.	N]M]N]OERERR.^ ERER2ER3.	N]M]N]OERERR.^ ERER4ER5.	N]M]N]OERERR.^ ERER6ER7.	N]M]N]OERERR.^ ERER8ER9.	N]M]N]OERERR.^ ERER:ER;.	NtR]R U u. uF  p ]! ]! ]PV 4      4      NK  	  up tSER< tTER= tUER> tVER? tWER@ tXERA tY. EROtZ]T]U]VER]P2                  ERERERBERD.	]T]U]VER]P2                  ERERER]P0                  ! ^4      ^,          ERB,          ,           ERE.	]T]U]VER]P2                  ERBERR]P0                  ! ^4      ^,          ERB,          ,           ERF.	]T]U]VER]P2                  ^^^ERG.	]W]X]YER]P2                  ERER]P                  ERB,          ERH.	]W]X]YER]P2                  ERER]P                  ERC,          ERI.	.t[][ U u. uF  p ]! ]! ]ZV 4      4      NK  	  up t\ERJ t]]]! ]4       ]]! ]S4       ]]! ]\4       ERERK lt^]P                  ]P                  ]P                  ]P                  .tc. EROtd]]]]].te. EROtfERL tgERM]gnh        ERN ti^]inh        ERO tj^]jnh        ERP tk^]knh        ERQ tl^ ]lnh        ERR tm^ ]mnh        ERS tn^ ]nnh        ERT toERU]onh        ERV tpERW]pnh        . EROtq. ]g^^.]gP                  ^.N]g^^
.]gP                  ^.N]g^^d.]gP                  ^.N]gERERX.]gP                  ^.N]gERERY.]gP                  ^+.N]iRERZ.]iP                  ^.N]iRERX.]iP                  ^.N]iER[ER\.]iP                  ^.N]iER]ERY.]iP                  ^).N]iER^ER_.]iP                  ^0.N]j^ ^.]jP                  ^.N]jER^
.]jP                  ^.N]jERERX.]jP                  ^$.N]jERER\.]jP                  ^-.N]jERERY.]jP                  ^7.N]k^ ^.]kP                  ^.N]kER^
.]kP                  ^.N]kERERX.]kP                  ^!.N]kERER\.]kP                  ^+.N]kERERY.]kP                  ^6.N]lERi^.]lP                  ^.N]lER^.]lP                  ^.N]lERi^
.]lP                  ^.N]lER^2.]lP                  ^.N]lER^d.]lP                  ^.N]mERER`.]mP                  ^.N]mERERa.]mP                  ^.N]mERERb.]mP                  ^.N]mERERc.]mP                  ^.N]mERERd.]mP                  ^.N]nERi^.]nP                  ^.N]nER^.]nP                  ^.N]nERi^
.]nP                  ^.N]nER^2.]nP                  ^.N]nER^d.]nP                  ^.N]oERe^.]oP                  ^	.N]oERe^.]oP                  ^
.N]oERe^	.]oP                  ^.N]oERe^.]oP                  ^.N]oERe^Q.]oP                  ^.N]pERe^.]pP                  ^.N]pERe^.]pP                  ^.N]pERe^	.]pP                  ^
.N]pERe^.]pP                  ^.N]pERe^Q.]pP                  ^.Ntr]s! ]r4       UUu. uF3  w  rW"^ ,          P                   ERfV^,          ^,            2.,           NK5  	  upptr]r U u. uF  p ]! ]! ]qV 4      4      NK  	  up tu]]! ]u4       R# u up i u up i u up i u uppi u up i (  a
  
Parameters used in test and benchmark methods.

Collections of test cases suitable for testing 1-D root-finders
  'original': The original benchmarking functions.
     Real-valued functions of real-valued inputs on an interval
     with a zero.
     f1, .., f3 are continuous and infinitely differentiable
     f4 has a left- and right- discontinuity at the root
     f5 has a root at 1 replacing a 1st order pole
     f6 is randomly positive on one side of the root,
     randomly negative on the other.
     f4 - f6 are not continuous at the root.

  'aps': The test problems in the 1995 paper
     TOMS "Algorithm 748: Enclosing Zeros of Continuous Functions"
     by Alefeld, Potra and Shi. Real-valued functions of
     real-valued inputs on an interval with a zero.
     Suitable for methods which start with an enclosing interval, and
     derivatives up to 2nd order.

  'complex': Some complex-valued functions of complex-valued inputs.
     No enclosing bracket is provided.
     Suitable for methods which use one or more starting values, and
     derivatives up to 2nd order.

  The test cases are provided as a list of dictionaries. The dictionary
  keys will be a subset of:
  ["f", "fprime", "fprime2", "args", "bracket", "smoothness",
  "a", "b", "x0", "x1", "root", "ID"]
)randomN)	_zeros_py)array_namespacea  
f2 is a symmetric parabola, x**2 - 1
f3 is a quartic polynomial with large hump in interval
f4 is step function with a discontinuity at 1
f5 is a hyperbola with vertical asymptote at 1
f6 has random values positive to left of 1, negative to right

Of course, these are not real problems. They just test how the
'good' solvers behave in bad circumstances where bisection is
really the best. A good solver should not be much worse than
bisection in such circumstance, while being faster for smooth
monotone sorts of functions.
c                     W R,
          ,          # )z'f1 is a quadratic with roots at 0 and 1      ? xs   &V/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/optimize/_tstutils.pyf1r   A   s    B<    c                 "    ^V ,          ^,
          #    r   r   s   &r
   f1_fpr   F   s    q519r   c                     ^# r   r   r   s   &r
   f1_fppr   J       r   c                "    V ^,          ^,
          # )z$f2 is a symmetric parabola, x**2 - 1r   r   s   &r
   f2r   N   s    a4!8Or   c                     ^V ,          # r   r   r   s   &r
   f2_fpr   S   s    q5Lr   c                     ^# r   r   r   s   &r
   f2_fppr   W   r   r   c                X    W R,
          ,          V R,
          ,          V R,
          ,          # )z%A quartic with roots at 0, 1, 2 and 3r   g       @g      @r   r   s   &r
   f3r   [   s     B<1r6"a"f--r   c                 v    ^V ^,          ,          ^V ^,          ,          ,
          ^V ,          ,           ^,
          #    r   r   s   &r
   f3_fpr   `   s+    q!t8b1a4i"q&(1,,r   c                 L    ^V ^,          ,          ^$V ,          ,
          ^,           #    r   r   s   &r
   f3_fppr#   d   s    19rAv""r   c                b    V ^8  d   RRV ,          ,           # V ^8  d   RRV ,          ,           # ^ # )zBPiecewise linear, left- and right- discontinuous at x=1, the root.r   皙?      r   r   s   &r
   f4r'   h   s/    1uR!V|1ub1f}r   c                4    V ^8w  d   RRV ,
          ,          # ^ # )zQ
Hyperbola with a pole at x=1, but pole replaced with 0. Not continuous at root.
r   r   r   s   &r
   f5r)   q   s     	Avb1f~r   c                     \         P                  V R 4      pVf1   V ^8  d   \        4       pMV ^8  d   \        4       ) pM^ pV\         V &   V# N)	_f6_cachegetr   )r	   vs   & r
   f6r/   ~   sH    aAyq5AU	AA	!Hr         ?g333333?r   zoriginal.01.00zoriginal.02.00zoriginal.03.00zoriginal.04.00zoriginal.05.00c                J    \         P                  ! V 4      V ^,          ,
          # )z<Straightforward sum of trigonometric function and polynomialnpsinr   s   &r
   aps01_fr5      s    66!9q1ur   c                 <    \         P                  ! V 4      R,
          # )r   r0   r3   cosr   s   &r
   aps01_fpr9      s    66!9wr   c                 0    \         P                  ! V 4      ) # r+   r2   r   s   &r
   	aps01_fppr;          FF1I:r   c                    \         P                  ! ^^4      pR\         P                  ! ^V,          ^,
          ^,          W^,          ,
          ^,          ,          4      ,          # )zDpoles at x=n**2, 1st and 2nd derivatives at root are also close to 0r3   arangesumr	   iis   & r
   aps02_frD      sA    	1b	BB
Q!!e)a7888r   c                     \         P                  ! ^^4      p^\         P                  ! ^V,          ^,
          ^,          W^,          ,
          ^,          ,          4      ,          #    r?   rB   s   & r
   aps02_fprH      sA    	1b	Brvvq2vzAoUQ6777r   c                     \         P                  ! ^^4      p^\         P                  ! ^V,          ^,
          ^,          W^,          ,
          ^,          ,          4      ,          # rF   r?   rB   s   & r
   	aps02_fpprJ      sA    	1b	BB
Q!!e)a7888r   c                T    W,          \         P                  ! W ,          4      ,          # )zRapidly changing at the rootr3   expr	   abs   &&&r
   aps03_frQ      s    5266!%=  r   c                 p    WV ,          ^,           ,          \         P                  ! W ,          4      ,          # rF   rL   rN   s   &&&r
   aps03_fprS      s!    A	?RVVAE]**r   c                     WW ,          ^,           ,          V,           ,          \         P                  ! W ,          4      ,          # rF   rL   rN   s   &&&r
   	aps03_fpprU      s)    QUQY!#$rvvae}44r   c                     W,          V,
          # )zMedium-degree polynomialr   r	   nrO   s   &&&r
   aps04_frY          4!8Or   c                 .    WV^,
          ,          ,          # rF   r   rW   s   &&&r
   aps04_fpr\          1q5z>r   c                 H    W^,
          ,          W^,
          ,          ,          # rF   r   rW   s   &&&r
   	aps04_fppr_          A;U##r   c                <    \         P                  ! V 4      R,
          # )zSimple Trigonometric functionr0   r2   r   s   &r
   aps05_frb      s    66!9wr   c                 .    \         P                  ! V 4      # r+   r7   r   s   &r
   aps05_fprd          66!9r   c                 0    \         P                  ! V 4      ) # r+   r2   r   s   &r
   	aps05_fpprg      r<   r   c                    ^V ,          \         P                  ! V) 4      ,          ^\         P                  ! V) V ,          4      ,          ,
          ^,           # )z0Exponential rapidly changing from -1 to 1 at x=0rL   r	   rX   s   &&r
   aps06_frj      s8    q52661":BFFA26N 22Q66r   c                     ^\         P                  ! V) 4      ,          ^V,          \         P                  ! V) V ,          4      ,          ,           # r   rL   ri   s   &&r
   aps06_fprl      s2    rvvqbz>AEBFFA26N222r   c                 h    RV,          V,          \         P                  ! V) V ,          4      ,          # r   r>   rL   ri   s   &&r
   	aps06_fppro      s#    6A:rAv&&r   c                t    ^^V,
          ^,          ,           V ,          ^W,          ,
          ^,          ,
          # )z/Upside down parabola with parametrizable heightr   ri   s   &&r
   aps07_frq      (    Q
Na1qu9q.00r   c                 t    ^^V,
          ^,          ,           ^V,          ^W,          ,
          ,          ,           # rF   r   ri   s   &&r
   aps07_fprt      s(    Q
Na!eq15y111r   c                 "    RV,          V,          # rn   r   ri   s   &&r
   	aps07_fpprv     s    6A:r   c                <    W ,          ^V ,
          V,          ,
          # )zDegree n polynomialr   ri   s   &&r
   aps08_frx     s    5AEA:r   c                 Z    ^V ,          V^V ,
          V^,
          ,          ,          ,           # r   r   ri   s   &&r
   aps08_fprz     s#    q51AQ''''r   c                 f    ^W^,
          ,          ^V ,
          V^,
          ,          ,          ,
          # r   r   ri   s   &&r
   	aps08_fppr|     s%    qE{a!eq1u----r   c                t    ^^V,
          ^,          ,           V ,          ^W,          ,
          ^,          ,
          # )z.Upside down quartic with parametrizable heightr   ri   s   &&r
   aps09_fr~     rr   r   c                     ^^V,
          ^,          ,           ^V,          ^W,          ,
          ^,          ,          ,           # rF   r   ri   s   &&r
   aps09_fpr     s,    Q
Na!eq15y1n444r   c                 J    RV,          ^W,          ,
          ^,          ,          # )r"   ir   ri   s   &&r
   	aps09_fppr     s    7a!%i!^##r   c                t    \         P                  ! V) V ,          4      V ^,
          ,          W,          ,           # )zExponential plus a polynomialrL   ri   s   &&r
   aps10_fr   !  s&    661"q&>QU#ad**r   c                     \         P                  ! V) V ,          4      V) V ^,
          ,          ^,           ,          WV^,
          ,          ,          ,           # rF   rL   ri   s   &&r
   aps10_fpr   &  s9    661"q&>aR1q5\A-.QZ??r   c                     \         P                  ! V) V ,          4      V) V) V ^,
          ,          ^,           ,          V) V ,          ,           ,          W^,
          ,          W^,
          ,          ,          ,           # rF   rL   ri   s   &&r
   	aps10_fppr   *  sW    FFA26NqbQB!a%L1$45Q>?q5kAAJ&' (r   c                J    W,          ^,
          V^,
          V ,          ,          # )z8Rational function with a zero at x=1/n and a pole at x=0r   ri   s   &&r
   aps11_fr   /  s    EAI1q5A+&&r   c                 >    ^V^,
          ,          V ^,          ,          # rF   r   ri   s   &&r
   aps11_fpr   4  s    A;Ar   c                 >    RV^,
          ,          V ^,          ,          # rn   r   ri   s   &&r
   	aps11_fppr   8  s    Q<!Q$r   c                    \         P                  ! V RV,          4      \         P                  ! VRV,          4      ,
          # )z!nth root of x, with a zero at x=nr   r3   powerri   s   &&r
   aps12_fr   <  s+    88AsQw"((1cAg"666r   c                 Z    \         P                  ! V R V,
          V,          4      V,          # r   r   ri   s   &&r
   aps12_fpr   A  s     88Aa1}%))r   c                     \         P                  ! V R ^V,          ,
          V,          4      R V,          ,          R V,
          ,          V,          # r   r   ri   s   &&r
   	aps12_fppr   E  s7    88Aa!eq()S1W5qAAEEr   c                    V ^ 8X  d   ^ # ^V ^,          ,          pV\         8  d   ^ # V \        P                  ! V4      ,          # )z-Function with *all* derivatives 0 at the root_MAX_EXPABLEr3   rM   r	   ys   & r
   aps13_fr   L  s8    Av 	
AqDA<rvvay=r   c                     V ^ 8X  d   ^ # ^V ^,          ,          pV\         8  d   ^ # ^^V ^,          ,          ,           \        P                  ! V4      ,          #     r   r   s   & r
   aps13_fpr   Y  sC    Av	AqDA<AqDLBFF1I%%r   c                     V ^ 8X  d   ^ # ^V ^,          ,          pV\         8  d   ^ # ^^V ^,          ,
          ,          V ^,          ,          \        P                  ! V4      ,          # r   r   r   s   & r
   	aps13_fppr   b  sL    Av	AqDA<AqD>AqD 266!9,,r   c                    V ^ 8:  d   V) R,          # VR,          V R,          \         P                  ! V 4      ,           ^,
          ,          # )z<0 for negative x-values, trigonometric+linear for x positive      4@      ?r2   ri   s   &&r
   aps14_fr   k  s:    AvrDyt8q3w*Q.//r   c                 j    V ^ 8:  d   ^ # VR,          R\         P                  ! V 4      ,           ,          # )r   r   gUUUUUU?r7   ri   s   &&r
   aps14_fpr   r  s(    Avt8y266!9,--r   c                 ^    V ^ 8:  d   ^ # V) R,          \         P                  ! V 4      ,          # )r   r   r2   ri   s   &&r
   	aps14_fppr   x  s%    Av29q	""r   c                    V ^ 8  d   R# V R^V,           ,          8  d   \         P                  R,
          # \         P                  ! V^,           V ,          ^,          R,          4      R,
          # )z6piecewise linear, constant outside of [0, 0.002/(1+n)]X9v?  grh|Mb`?r3   erM   ri   s   &&r
   aps15_fr   ~  sR    1u8q1utte|661q5A+/D()E11r   c                 
   ^ T u;8:  d   R^V,           ,          8:  g   M \         P                  R,
          # \         P                  ! V^,           V ,          ^,          R,          4      V^,           ,          ^,          R,          # r   r   r   r   r   ri   s   &&r
   aps15_fpr     sY    'XQ''tte|661q5A+/D()QU3a7$>>r   c                 B   ^ T u;8:  d   R^V,           ,          8:  g   M \         P                  R,
          # \         P                  ! V^,           V ,          ^,          R,          4      V^,           ,          ^,          R,          V^,           ,          ^,          R,          # r   r   ri   s   &&r
   	aps15_fppr     sl    'XQ''tte|661q5A+/D()QU3a7$>!a%H1LtSSr   gS?z	aps.01.00g=.@z	aps.02.00gƸ)@z	aps.02.01gxs7z&@z	aps.02.02g^^W3@z	aps.02.03g=@z	aps.02.04gnD@z	aps.02.05g؛[mK@z	aps.02.06g%Q@z	aps.02.07gkYMV@z	aps.02.08gzi[@z	aps.02.09z	aps.03.00z	aps.03.01z	aps.03.02皙?g      @gllRf?z	aps.04.00g_
x?z	aps.04.01glTj"+?z	aps.04.02g08->?z	aps.04.03g?z	aps.04.04z	aps.04.05z	aps.04.06z	aps.04.07z	aps.04.08z	aps.04.09g333333@r   z	aps.04.10z	aps.04.11z	aps.04.12z	aps.04.13g?z	aps.05.00g	?z	aps.06.00gn?z	aps.06.01gs Hda?z	aps.06.02gX?z	aps.06.03g?gi?z	aps.06.04r%   g]?z	aps.06.05g?g.?z	aps.06.06gTϨ?z	aps.06.07g?g.?z	aps.06.08g{Gz?gͺ},d|?z	aps.06.09gz?z	aps.07.00g3_tF?z	aps.07.01gmd?z	aps.07.02g?z	aps.08.00gΏ$?z	aps.08.01g~++`?z	aps.08.02gx5[?z	aps.08.03gB!?z	aps.08.04g.xz?z	aps.09.00g.xz?z	aps.09.01gIl?z	aps.09.02g:*m?z	aps.09.03glM:?z	aps.09.04gR@>z	aps.09.05gKu->z	aps.09.06gG"?z	aps.10.00gXbT?z	aps.10.01g,C?z	aps.10.02g=N?z	aps.10.03gaw?z	aps.10.04{Gz?z	aps.11.00z	aps.11.01z	aps.11.02z	aps.11.03g?z	aps.12.00z	aps.12.01z	aps.12.02z	aps.12.03z	aps.12.04z	aps.12.05z	aps.12.06z	aps.12.07z	aps.12.08z	aps.12.09z	aps.12.10z	aps.12.11z	aps.12.12z	aps.12.13z	aps.12.14z	aps.12.15z	aps.12.16z	aps.12.17z	aps.12.18z	aps.13.00gh9?z	aps.14.00z	aps.14.01z	aps.14.02z	aps.14.03z	aps.14.04z	aps.14.05z	aps.14.06z	aps.14.07z	aps.14.08z	aps.14.09z	aps.14.10z	aps.14.11z	aps.14.12z	aps.14.13z	aps.14.14z	aps.14.15z	aps.14.16z	aps.14.17z	aps.14.18z	aps.14.19z	aps.14.20z	aps.14.21z	aps.14.22z	aps.14.23z	aps.14.24z	aps.14.25z	aps.14.26z	aps.14.27z	aps.14.28z	aps.14.29z	aps.14.30z	aps.14.31z	aps.14.32z	aps.14.33z	aps.14.34z	aps.14.35z	aps.14.36z	aps.14.37z	aps.14.38z	aps.14.39g-C6?gBi?z	aps.15.00gpĵx?z	aps.15.01gD?z	aps.15.02gY?z	aps.15.03gVXl
?z	aps.15.04g^	?z	aps.15.05g3Qu?z	aps.15.06gq3юL8?z	aps.15.07gm۾Rk?z	aps.15.08gHt/?z	aps.15.09gW?z	aps.15.10gBQ?z	aps.15.11gWΥ?z	aps.15.12gBN?z	aps.15.13g@rp?z	aps.15.14g`MW?z	aps.15.15g-rc?z	aps.15.16g[.?z	aps.15.17g ?z	aps.15.18g5cA ?z	aps.15.19g\
>z	aps.15.20guW>z	aps.15.21g,Y~>z	aps.15.22gG>z	aps.15.23g]4H->z	aps.15.24g2v>z	aps.15.25gwaO>z	aps.15.26gAbE٭>z	aps.15.27gӥM>z	aps.15.28gݢO>z	aps.15.29g$lȴ>z	aps.15.30c                     W,          V,
          # )z&z**n-a:  Use to find the nth root of ar   zrX   rO   s   &&&r
   cplx01_fr     rZ   r   c                 .    WV^,
          ,          ,          # rF   r   r   s   &&&r
   	cplx01_fpr     r]   r   c                 H    W^,
          ,          W^,
          ,          ,          # rF   r   r   s   &&&r
   
cplx01_fppr     r`   r   c                <    \         P                  ! V 4      V,
          # )z"e**z - a: Use to find the log of arL   r   rO   s   &&r
   cplx02_fr     s    66!9q=r   c                 .    \         P                  ! V 4      # r+   rL   r   s   &&r
   	cplx02_fpr     re   r   c                 .    \         P                  ! V 4      # r+   rL   r   s   &&r
   
cplx02_fppr     re   r                 ?y              ?zcomplex.01.00zcomplex.01.01zcomplex.01.02zcomplex.01.03zcomplex.02.00zcomplex.02.01c                n    V  F.  p\        RR.VP                  R. 4      4       F	  w  r#W1V&   K  	  K0  	  R# )z:Add "a" and "b" keys to each test from the "bracket" valuerO   rP   bracketN)zipr-   )testsdkr.   s   &   r
   _add_a_br   $  s5    c
AEE)R$89DAaD : r   c                    T ;'       g    Rp R\         R\        R\        R\        /pVP	                  V . 4      pVe!   V Uu. uF  qDR,          V8  g   K  VNK  	  ppV# u upi )a  Return the requested collection of test cases, as an array of dicts with subset-specific keys

Allowed values of collection:
'original': The original benchmarking functions.
     Real-valued functions of real-valued inputs on an interval with a zero.
     f1, .., f3 are continuous and infinitely differentiable
     f4 has a single discontinuity at the root
     f5 has a root at 1 replacing a 1st order pole
     f6 is randomly positive on one side of the root, randomly negative on the other
'aps': The test problems in the TOMS "Algorithm 748: Enclosing Zeros of Continuous Functions"
     paper by Alefeld, Potra and Shi. Real-valued functions of
     real-valued inputs on an interval with a zero.
     Suitable for methods which start with an enclosing interval, and
     derivatives up to 2nd order.
'complex': Some complex-valued functions of complex-valued inputs.
     No enclosing bracket is provided.
     Suitable for methods which use one or more starting values, and
     derivatives up to 2nd order.

The dictionary keys will be a subset of
["f", "fprime", "fprime2", "args", "bracket", "a", b", "smoothness", "x0", "x1", "root", "ID"]
originalapscomplexchandrupatla
smoothness)_APS_TESTS_DICTS_COMPLEX_TESTS_DICTS_ORIGINAL_TESTS_DICTS_CHANDRUPATLA_TESTS_DICTSr-   )
collectionr   subsetsr   tcs   &&   r
   	get_testsr   0  ss    . ))zJ&.08:G KK
B'E#Fe,'7:'EeFL Gs   AAc                 >    V ^,          ^V ,          ,
          ^,
          #    r   r   s   &r
   fun1r   \  s    a4!A#:>r   g5 @c                 0    ^^V ^,          ,          ,
          # rF   r   r   s   &r
   fun2r   a  s    qAv:r   c                 "    V ^,
          ^,          # r   r   r   s   &r
   fun3r   f  s    aC!8Or   c                 0    ^V ^,
          ^,          ,          #    r   r   s   &r
   fun4r   k  s    acAX:r   c                     V ^	,          # 	   r   r   s   &r
   fun5r   p  s    a4Kr   c                     V ^,          #    r   r   s   &r
   fun6r   u  s    b5Lr   c                     \        V 4      pVP                  V 4      R 8  d   ^ # WP                  V R,          ) 4      ,          # )gW8?r>   )r   absrM   r	   xps   & r
   fun7r   z  s8    		Bq	F"1:&&!b'*:(::r   c                     \        V 4      pR pR^V,
          ,          VP                  V ) 4      ,          ) V^V,
          VP                  V ) 4      ,          ,           ,          R,
          RV ,          ,           # )ge-?i  i  i\  r   rM   )r	   r   xis   &  r
   fun8r     s\    		B	B1R4[#$bAbD"&&!*+<&<=DtAvMMr   g;6b?c                     \        V 4      pVP                  V 4      ^,
          RV ^,          ,          ,
          RV ^,          ,          ,           # )r   r   g>r   r   s   & r
   fun9r     s8    		B66!9q=419$wq!t|33r   gGo?g     @g    _Bg)\(?gư>g    .Ag|=g-q=g   mBg      @g      @g      $@g      I@g      Y@g-C6*?.)	ffprimefprime2argsr   r   x0rootIDr   g0D   ?g@g.   @gh!@g   "@gh/@gK   0@g}8@gK   9@g?A@g%   B@g?H@g%  H@g?O@g   P@g?T@g  @T@gX@g   Y@g?^@)ir  ir>   )ir>   )i8)r   r   )r   r   )   r   )
   r   )r"   r   )r   rG   )r   rG   )r  rG   )r	  rG   )r"   rG   gffffff)   rG   rF   r   r   r   )   )   )(   )<   g?)P   )d   )r	  )   )r  g?r   )   r   )   )   )   r   )   )   )   )   )   )   )!   ir!   )r
  )   )   )   )   )   )   )   )    )"   )#   )$   )%   )&   )'   )   )i,  )i  )i  )iX  )i  )i   )i  )r   )	r   r   r  r  r   r  x1r  r  )r   r  y      ?      ?y      ?      ?)r   rG   y            ?g      y             @)r   r  )r   r  )r  y      ?       @)r   )r   N)z	cc.bisectz	cc.ridderz	cc.brenthz	cc.brentq)r   r   r'   r)   r/   )r   r   r  nfevalr  g     g    _ig    .r&   g       g      g      $)v__doc__r   numpyr3   scipy.optimizer   ccscipy._lib._array_apir   descriptionr   r   r   r   r   r   r   r   r#   r'   r)   r,   r/   _ORIGINAL_TESTS_KEYSsqrtinf_ORIGINAL_TESTSdictr   r   r5   r9   r;   rD   rH   rJ   rQ   rS   rU   rY   r\   r_   rb   rd   rg   rj   rl   ro   rq   rt   rv   rx   rz   r|   r~   r   r   r   r   r   r   r   r   r   r   r   logfinfofloatmaxr   r   r   r   r   r   r   r   r   r   _APS_TESTS_KEYSpi
_APS_TESTSr   r   r   r   r   r   r   _COMPLEX_TESTS_KEYS_COMPLEX_TESTSr   r   r   bisectridderbrenthbrentqmethodsmstrings	functionsfstringsr   r  r   r   r   r   r   r   r   r   _CHANDRUPATLA_TESTS_KEYS_CHANDRUPATLA_TESTS	enumerate__name__r   )testcaseitests   000r
   <module>rR     s%  R   * 1

.
-# 	
,  S"''!*-rvvsCAQRS"''!*-rvvsCAQRS"''!*-rvvsCAQRtR#rwwqz*BS:JKtR#rwwqz*BS:JKtR#rwwqz*RVVGS#?OP ?N>M(D!8	,-o 
98
9
!
+5
$
7
3'1
2
(.1
5$+
@(
'
7
*F vvbhhuo))*
&-0.#2?T(uh	2	255'9266.u h	2(';RVV.u
 h	2(';RVV.u h	2)'<bff	 +/u h	2	9'=rvv	 +/u h	2	9'=rvv	 +/u h	2	9'=rvv	 +/u h	2	9'=rvv	 +/u" h	2	9'=rvv	 +/#u& h	2	:'>	 +/'u* h	2
J'?
!;0+u. h	9r2hK/u2 h	:BxK3u6 h	:BxK7u: h	8aVRVV
!;0;u> h	8aVRVV
!;0?uB h	8aVRVV
!;0CuF h	9q!fbff
!;0GuJ h	9q!fbff
!;0KuN h	6Aq6266![OuR h	6Aq6266![SuV h	6Aq6266![WuZ h	7QFBFF![[u^ h	7QFBFF![_ub h	6E4="&&![cuf h	7UDM266![guj h	7UDM266![kun h	7UDM266![our h	23x"%%!)["suv h	4!Q
!;0wuz h	4!Q
!;0{u~ h	4!Q
!;0uB h	4!Q
!;0CuF h	4!Q
!;0GuJ h	51a&"&&
!;0KuN h	51a&"&&
#[2OuR h	51a&"&&&5SuV h	51a&"&&%{4WuZ h	6Aq6266
#[2[u^ h	4!Q
!;0_ub h	51a&"&&
!;0cuf h	51a&"&&
!;0guj h	4!Q#{kun h	4!Q
!;0our h	51a&"&&
!;0suv h	51a&"&&
!;0wuz h	51a&"&&
!;0{u~ h	4!Q
!;0uB h	4!Q
!;0CuF h	4!Q
!;0GuJ h	4!Q
!;0KuN h	4!Q
!;0OuR h	51a&"&&
!;0SuV h	51a&"&&
!;0WuZ h	4!Q
!;0[u^ h	4!Q
!;0_ub h	51a&"&&
!;0cuf h	51a&"&&
!;0guj h	51a&"&&
!;0kun h	4$BFF
G["our h	4$BFF
G["suv h	54)RVV
Hk#wuz h	54)RVV
Hk#{u~ h	4!S266![uB h	4!S266![CuF h	4!S266![GuJ h	4!S266![KuN h	4!S266![OuR h	4!S266![SuV h	4!S266![WuZ h	51c(BFF"k[u^ h	51c(BFF"k_ub h	51c(BFF"kcuf h	51c(BFF"kguj h	51c(BFF"kkun h	51c(BFF"kour h	51c(BFF"ksuv h	51c(BFF"kwuz h	51c(BFF"k{u~ h	51c(BFF"kuB h	51c(BFF"kCuF h	51c(BFF"kGuJ h	2Aw![KuN h	4%);Q.OuR h	4%);Q.SuV h	4%);Q.WuZ h	4%);Q.[u^ h	4%);Q._ub h	4%);Q.cuf h	4%);Q.guj h	4%);Q.kun h	4%);Q.our h	55"%%!)*<a.suv h	55"%%!)*<a.wuz h	55"%%!)*<a.{u~ h	55"%%!)*<a.uB h	55"%%!)*<a.CuF h	55"%%!)*<a.GuJ h	55"%%!)*<a.KuN h	55"%%!)*<a.OuR h	55"%%!)*<a.SuV h	55"%%!)*<a.WuZ h	55"%%!)*<a.[u^ h	55"%%!)*<a._ub h	55"%%!)*<a.cuf h	55"%%!)*<a.guj h	55"%%!)*<a.kun h	55"%%!)*<a.our h	55"%%!)*<a.suv h	55"%%!)*<a.wuz h	55"%%!)*<a.{u~ h	55"%%!)*<a.uB h	55"%%!)*<a.CuF h	55"%%!)*<a.GuJ h	55"%%!)*<a.KuN h	55"%%!)*<a.OuR h	55"%%!)*<a.SuV h	55"%%!)*<a.WuZ h	55"%%!)*<a.[u^ h	55"%%!)*<a._ub h	55"%%!)*<a.cuf h	55"%%!)*<a.guj h	55"%%!)*<a.kun h	55$-	 +/our h	55$-	 +/suv h	55$-	 +/wuz h	55$-	 +/{u~ h	55$-	 +/uB h	55$-	 +/CuF h	55$-	 +/GuJ h	55$-	 +/KuN h	55$-	 +/OuR h	55$-	 +/SuV h	55$-	 +/WuZ h	55$-	 +/[u^ h	55$-	 +/_ub h	55$-	 +/cuf h	55$-	 +/guj h	55$-	 +/kun h	55$-	 +/our h	55$-	 +/suv h	55$-	 +/wuz h	55$-	 +/{u~ h	55$-	 +/uB	 h	6E4=!	 +/C	uF	 h	6E4=!	 +/G	uJ	 h	6E4=!	 +/K	uN	 h	6E4=!	 +/O	uR	 h	6E4=!	 +/S	uV	 h	6E4=!	 +/W	uZ	 h	6E4=!	 +/[	u^	 h	6E4=!	 +/_	ub	 h	6E4=!	 +/c	uf	 h	7UDM1	 +/g	u
n	 JTTXD_h78T 
$
$  y*grvv
R2y*fbffrwwqzA~'< < y*grvv*bggaj1nt33 y*fbff1oy*eRVV
RUUT\?<y*eRVV
RUUT\?<$ >L=KD (	+,^ 
 		  	  	 F 99biiBII
6?RR 	)						; 	N 	4 	 D .	Aq6499a .	Ar7DIIr". 
As8TYY#. 
D#;		2&	.
 
E4=$))R(. 
C;		1%. 
D#;		2&. 
D#;		2&. 
E4=$))R(. 
E4=$))R(. 
Aq6499b!. 
C9dii$. 
D#;		2&. 
D#;		2&. 
E4=$))R(.  
Aq6499b!!." 
C9dii$#.$ 
D#;		2&%.& 
D#;		2&'.( 
E4=$))R().* 
B7DIIr"+., 
B7DIIr"-.. 
B8TYY#/.0 
B8TYY#1.2 
C:tyy"%3.4 
C9dii$5.6 
C9dii$7.8 
C:tyy"%9.: 
C:tyy"%;.< 
D$<B'=.> 
B7DIIq!?.@ 
B7DIIq!A.B 
B8TYY#C.D 
B8TYY#E.F 
C:tyy"%G.H 
D!9dii#I.J 
D!9dii$K.L 
D!9dii$M.N 
D":tyy"%O.P 
D":tyy"%Q.R 
D!9dii#S.T 
D!9dii#U.V 
D!9dii$W.X 
D":tyy"%Y.Z 
D":tyy"%[. ` '00C&DF&D71 q'"2"2!31QqSUG<===&DF  .AB-@ "#&>"IJ-@B  	" #Yv UHPFBs'   %A\:D?A\?I=A][9A]	\A]