
&]\c           @` s
  d  d l  m Z m Z m Z d  d l m Z d  d l Z d  d l m Z	 d Z
 d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z i  Z d   Z d d d d d d d d d g	 Z e e e dd e j d  g e j d d d g	 e e e dd e j d  g e j d d d  g	 e e e dd e j d  g e j d d d! g	 e d d dd e j d  g d" d d d# g	 e d d dd e j d  g d" d d d$ g	 e d d dd e j d  g e j d d d$ g	 g Z g  e D] Z e e e e   ^ q	Z  d%   Z! d&   Z" d'   Z# d(   Z$ d)   Z% d*   Z& d+   Z' d,   Z( d-   Z) d.   Z* d/   Z+ d0   Z, d1   Z- d2   Z. d3   Z/ d4   Z0 d5   Z1 d6   Z2 d7   Z3 d8   Z4 d9   Z5 d:   Z6 d;   Z7 d<   Z8 d=   Z9 d>   Z: d?   Z; d@   Z< dA   Z= dB   Z> dC   Z? dD   Z@ dE   ZA dF   ZB dG   ZC dH   ZD e jE e jF eG  jH  ZI dI   ZJ dJ   ZK dK   ZL dL   ZM dM   ZN dN   ZO dO   ZP dP   ZQ dQ   ZR d d d d d d d d d g	 ZS e! e" e# de jT dR e jT g e j d dS dT g	 e$ e% e& dddg e j dR dX dY g	 e$ e% e& dddg e j d[ d\ d] g	 e$ e% e& dddg e j d_ d` da g	 e$ e% e& dddg e j dc dd de g	 e$ e% e& dddg e j dg dh di g	 e$ e% e& dddg e j dk dl dm g	 e$ e% e& dddg e j do dp dq g	 e$ e% e& dddg e j ds dt du g	 e$ e% e& dddg e j dw dx dy g	 e$ e% e& dddg e j d{ d| d} g	 e' e( e) dd d g e j d d  d g	 e' e( e) dd d g e j d d  d g	 e' e( e) dd d g e j d d  d g	 e* e+ e, dd  d[ g e j d d d g	 e* e+ e, dd  d[ g e j d d d g	 e* e+ e, dd  d[ g e j d d d g	 e* e+ e, dd  d[ g e j d d d g	 e* e+ e, dd  d[ g e j d d d g	 e* e+ e, dd  d[ g e j d dU d g	 e* e+ e, dd  d[ g e j d dU d g	 e* e+ e, dd  d[ g e j d dU d g	 e* e+ e, dd  d[ g e j d dU d g	 e* e+ e, dd  d[ g e j d dU d g	 e* e+ e, dd d g e j d dU d g	 e* e+ e, dd d g e j d dU d g	 e* e+ e, dd d g e j d dU d g	 e* e+ e, dd d g e j d dU d g	 e- e. e/ dd  d g e j d e jT d d g	 e0 e1 e2 dd  dU g e j d d d g	 e0 e1 e2 dd  dU g e j d d d g	 e0 e1 e2 dd  dU g e j d d d g	 e0 e1 e2 dd  dU g e j d d d g	 e0 e1 e2 dd  dU g e j d d d g	 e0 e1 e2 dd  dU g e j d d d g	 e0 e1 e2 dd  dU g e j d d d g	 e0 e1 e2 dd  dU g e j dd d g	 e0 e1 e2 dd  dU g e j d d d g	 e0 e1 e2 dd  dU g e j d d d g	 e3 e4 e5 dd  dU g e j d d d g	 e3 e4 e5 dd  dU g e j d d d g	 e3 e4 e5 dd  dU g e j d d d g	 e6 e7 e8 dd  dU g e j d d d g	 e6 e7 e8 dd  dU g e j d d d g	 e6 e7 e8 dd  dU g e j d d d g	 e6 e7 e8 dd  dU g e j d d d g	 e6 e7 e8 dd  dU g e j d d d g	 e9 e: e; dd  dU g e j d d d g	 e9 e: e; dd  dU g e j d d d g	 e9 e: e; dd  dU g e j d d d g	 e9 e: e; dd  dU g e j d d d g	 e9 e: e; dd  dU g e j d d d g	 e9 e: e; dd  dU g e j d d d g	 e9 e: e; dd  dU g e j d d d g	 e< e= e> dd  dU g e j d d d g	 e< e= e> dd  dU g e j d d d g	 e< e= e> dd  dU g e j d d d g	 e< e= e> dd  dU g e j d d d g	 e< e= e> dd  dU g e j d d d g	 e? e@ eA dd dU g e j d d d g	 e? e@ eA dd dU g e j d dd g	 e? e@ eA dd dU g e j d dd g	 e? e@ eA dd dU g e j d dd g	 eB eC eD ddU dv g e j d dR d g	 eB eC eD ddU dv g e j d d d g	 eB eC eD d	dU dv g e j d dW d g	 eB eC eD d
dU dv g e j d d[ d g	 eB eC eD ddU dv g e j d d d g	 eB eC eD ddU dv g e j d d d g	 eB eC eD ddU dv g e j d dZ d g	 eB eC eD ddU dv g e j d d d g	 eB eC eD ddU dv g e j d d d g	 eB eC eD ddU dv g e j d d d g	 eB eC eD ddU dv g e j d dc d g	 eB eC eD ddU dv g e j d ddg	 eB eC eD ddU dv g e j d ddg	 eB eC eD ddU dv g e j d ddg	 eB eC eD ddU dv g e j d db dg	 eB eC eD ddU dv g e j d dd	g	 eB eC eD ddU dv g e j d d
dg	 eB eC eD ddU dv g e j d d dg	 eB eC eD ddU dv g e j d ddg	 eJ eK eL dd" dW g e j d ddg	 eM eN eO dde jT dR g d  dU ddg	 eM eN eO dde jT dR g d  dU ddg	 eM eN eO dde jT dR g d  dU ddg	 eM eN eO dde jT dR g d  dU ddg	 eM eN eO dde jT dR g d  dU ddg	 eM eN eO d de jT dR g d  dU ddg	 eM eN eO d!de jT dR g d  dU ddg	 eM eN eO d"de jT dR g d  dU ddg	 eM eN eO d#de jT dR g d  dU ddg	 eM eN eO d$de jT dR g d  dU ddg	 eM eN eO d%de jT dR g d  dU ddg	 eM eN eO d&de jT dR g d  dU ddg	 eM eN eO d'de jT dR g d  dU ddg	 eM eN eO d(de jT dR g d  dU dd g	 eM eN eO d)de jT dR g d  dU dd!g	 eM eN eO d*de jT dR g d  dU dd"g	 eM eN eO d+de jT dR g d  dU dd#g	 eM eN eO d,de jT dR g d  dU dd%g	 eM eN eO d-de jT dR g d  dU dd&g	 eM eN eO d.de jT dR g d  dU dd'g	 eM eN eO d/de jT dR g d  dU dd(g	 eM eN eO d0de jT dR g d  dU dd*g	 eM eN eO d1de jT dR g d  dU dd+g	 eM eN eO d2de jT dR g d  dU dd-g	 eM eN eO d3de jT dR g d  dU dd.g	 eM eN eO d4de jT dR g d  dU dd/g	 eM eN eO d5de jT dR g d  dU dd0g	 eM eN eO d6de jT dR g d  dU dd2g	 eM eN eO d7de jT dR g d  dU dd3g	 eM eN eO d8de jT dR g d  dU dd4g	 eM eN eO d9de jT dR g d  dU dd5g	 eM eN eO d:de jT dR g d  dU dd7g	 eM eN eO d;de jT dR g d  dU dd8g	 eM eN eO d<de jT dR g d  dU dd:g	 eM eN eO d=de jT dR g d  dU dd<g	 eM eN eO d>de jT dR g d  dU dd=g	 eM eN eO d?de jT dR g d  dU dd>g	 eM eN eO d@de jT dR g d  dU dd@g	 eM eN eO dAde jT dR g d  dU ddBg	 eM eN eO dBde jT dR g d  dU ddCg	 eP eQ eR dCddDg d  d dEdFg	 eP eQ eR dDddDg d  d dGdHg	 eP eQ eR dEddDg d  d dIdJg	 eP eQ eR dFddDg d  d dKdLg	 eP eQ eR dGddDg d  d dMdNg	 eP eQ eR dHddDg d  d dOdPg	 eP eQ eR dIddDg d  d dQdRg	 eP eQ eR dJddDg d  d dSdTg	 eP eQ eR dKddDg d  d dUdVg	 eP eQ eR dLddDg d  d dWdXg	 eP eQ eR dMddDg d  d dYdZg	 eP eQ eR dNddDg d  d d[d\g	 eP eQ eR dOddDg d  d d]d^g	 eP eQ eR dPddDg d  d d_d`g	 eP eQ eR dQddDg d  d dadbg	 eP eQ eR dRddDg d  d dcddg	 eP eQ eR dSddDg d  d dedfg	 eP eQ eR dTddDg d  d dgdhg	 eP eQ eR dUddDg d  d didjg	 eP eQ eR dVddDg d  d dkdlg	 eP eQ eR dWddDg d  d dmdng	 eP eQ eR dXddDg d  d dodpg	 eP eQ eR dYddDg d  d drdsg	 eP eQ eR dZddDg d  d dudvg	 eP eQ eR d[ddDg d  d dxdyg	 eP eQ eR d\ddDg d  d d{d|g	 eP eQ eR d]ddDg d  d d~dg	 eP eQ eR d^ddDg d  d ddg	 eP eQ eR d_ddDg d  d ddg	 eP eQ eR d`ddDg d  d ddg	 eP eQ eR daddDg d  d ddg	 g ZU g  eU D] Z e e eS e   ^ qZV d  ZW d  ZX d  ZY d  ZZ d  Z[ d  Z\ d d d d d d dd d g	 Z] eW eX eY dbe j dcddddg	 eW eX eY dee j dfdgde j d  dR ddg	 eW eX eY dhe j ddid e j d  dR ddg	 eW eX eY dje j d[ dW dR dg	 eZ e[ e\ dke j dldme jT ddg	 eZ e[ e\ dne j dodpe jT ddg	 g Z^ g  e^ D] Z e e e] e   ^ qUZ_ d  Z` e` e   e` eV  e` e_  dd d Za e	 jb e	 jc e	 jd e	 je g Zf ddddg Zg e e e e e g Zh dddddg Zi d S(q  i    (   t   divisiont   print_functiont   absolute_import(   t   randomN(   t   zeross  
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         C` s   |  |  d S(   s'   f1 is a quadratic with roots at 0 and 1g      ?(    (   t   x(    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f1?   s    c         C` s   d |  d S(   Ni   i   (    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f1_fpD   s    c         C` s   d S(   Ni   (    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f1_fppH   s    c         C` s   |  d d S(   s$   f2 is a symmetric parabola, x**2 - 1i   i   (    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f2L   s    c         C` s   d |  S(   Ni   (    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f2_fpQ   s    c         C` s   d S(   Ni   (    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f2_fppU   s    c         C` s   |  |  d |  d |  d S(   s%   A quartic with roots at 0, 1, 2 and 3g      ?g       @g      @(    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f3Y   s    c         C` s$   d |  d d |  d d |  d S(   Ni   i   i   i   i   i   (    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f3_fp^   s    c         C` s   d |  d d |  d S(   Ni   i   i$   i   (    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f3_fppb   s    c         C` s4   |  d k r d d |  S|  d k  r0 d d |  Sd S(   s@   Piecewise linear, left and right discontinuous at x=1, the root.i   g      ?g?g      i    (    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f4f   s
    c         C` s   |  d k r d d |  Sd S(   sP   Hyperbola with a pole at x=1, but pole replaced with 0.  Not continuous at root.i   g      ?i    (    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f5o   s    c         C` sf   t  j |  d   } | d  k rb |  d k r6 t   } n |  d k  rO t   } n d } | t  |  <n  | S(   Ni   i    (   t	   _f6_cachet   gett   NoneR   (   R   t   v(    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   f6z   s    t   ft   fprimet   fprime2t   argst   brackett
   smoothnesst   x0t   roott   IDg      ?i   g333333?g      ?s   original.01.00s   original.02.00s   original.03.00is   original.04.00s   original.05.00c         C` s   t  j |   |  d S(   s=   Straight forward sum of trigonometric function and polynomiali   (   t   npt   sin(   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps01_f   s    c         C` s   t  j |   d S(   Ng      ?i   g      ?(   R   t   cos(   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps01_fp   s    c         C` s   t  j |   S(   N(   R   R    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps01_fpp   s    c         C` s?   t  j d d  } d t  j d | d d |  | d d  S(   sD   poles at x=n**2, 1st and 2nd derivatives at root are also close to 0i   i   ii   i   i   (   R   t   aranget   sum(   R   t   ii(    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps02_f   s    c         C` s?   t  j d d  } d t  j d | d d |  | d d  S(   Ni   i   i   i   i   i   (   R   R%   R&   (   R   R'   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps02_fp   s    c         C` s?   t  j d d  } d t  j d | d d |  | d d  S(   Ni   i   i   i   i   (   R   R%   R&   (   R   R'   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps02_fpp   s    c         C` s   | |  t  j | |   S(   s   Rapidly changing at the root(   R   t   exp(   R   t   at   b(    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps03_f   s    c         C` s!   | | |  d t  j | |   S(   Ni   (   R   R+   (   R   R,   R-   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps03_fp   s    c         C` s)   | | | |  d | t  j | |   S(   Ni   (   R   R+   (   R   R,   R-   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps03_fpp   s    c         C` s   |  | | S(   s   Medium-degree polynomial(    (   R   t   nR,   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps04_f   s    c         C` s   | |  | d S(   Ni   (    (   R   R1   R,   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps04_fp   s    c         C` s   | | d |  | d S(   Ni   i   (    (   R   R1   R,   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps04_fpp   s    c         C` s   t  j |   d S(   s   Simple Trigonometric functiong      ?i   g      ?(   R   R    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps05_f   s    c         C` s   t  j |   S(   N(   R   R"   (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps05_fp   s    c         C` s   t  j |   S(   N(   R   R    (   R   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps05_fpp   s    c         C` s0   d |  t  j |  d t  j | |   d S(   s0   Exponential rapidly changing from -1 to 1 at x=0i   i   (   R   R+   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps06_f   s    c         C` s,   d t  j |  d | t  j | |   S(   Ni   (   R   R+   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps06_fp   s    c         C` s   d | | t  j | |   S(   Ni(   R   R+   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps06_fpp   s    c         C` s$   d d | d |  d | |  d S(   s/   Upside down parabola with parametrizable heighti   i   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps07_f   s    c         C` s$   d d | d d | d | |  S(   Ni   i   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps07_fp   s    c         C` s   d | | S(   Ni(    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps07_fpp   s    c         C` s   |  |  d |  | S(   s   Degree n polynomiali   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps08_f   s    c         C` s   d |  | d |  | d S(   Ni   i   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps08_fp  s    c         C` s    d | | d d |  | d S(   Ni   i   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps08_fpp  s    c         C` s$   d d | d |  d | |  d S(   s.   Upside down quartic with parametrizable heighti   i   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps09_f  s    c         C` s(   d d | d d | d | |  d S(   Ni   i   i   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps09_fp  s    c         C` s   d | d | |  d S(   Nii   i   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps09_fpp  s    c         C` s"   t  j | |   |  d |  | S(   s   Exponential plus a polynomiali   (   R   R+   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps10_f  s    c         C` s3   t  j | |   | |  d d | |  | d S(   Ni   (   R   R+   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps10_fp  s    c         C` sI   t  j | |   | | |  d d | |  | | d |  | d S(   Ni   i   (   R   R+   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps10_fpp"  s    c         C` s   | |  d | d |  S(   s8   Rational function with a zero at x=1/n and a pole at x=0i   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps11_f&  s    c         C` s   d | d |  d S(   Ni   i   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps11_fp+  s    c         C` s   d | d |  d S(   Nii   i   (    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps11_fpp/  s    c         C` s(   t  j |  d |  t  j | d |  S(   s"   n-th root of x, with a zero at x=ng      ?(   R   t   power(   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps12_f3  s    c         C` s   t  j |  d | |  | S(   Ng      ?(   R   RJ   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps12_fp8  s    c         C` s0   t  j |  d d | |  d | d | | S(   Ng      ?i   (   R   RJ   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps12_fpp<  s    c         C` s?   |  d k r d Sd |  d } | t  k r. d S|  t j |  S(   s-   Function with *all* derivatives 0 at the rooti    i   i   (   t   _MAX_EXPABLER   R+   (   R   t   y(    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps13_fC  s    c         C` sK   |  d k r d Sd |  d } | t  k r. d Sd d |  d t j |  S(   Ni    i   i   (   RN   R   R+   (   R   RO   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps13_fpP  s    c         C` sS   |  d k r d Sd |  d } | t  k r. d Sd d |  d |  d t j |  S(   Ni    i   i   i   (   RN   R   R+   (   R   RO   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps13_fppY  s    c         C` s6   |  d k r | d S| d |  d t  j |   d S(   s<   0 for negative x-values, trigonometric+linear for x positivei    g      4@g      ?i   (   R   R    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps14_fb  s    	c         C` s)   |  d k r d S| d d t  j |   S(   Ni    g      4@g      ?g      ?gUUUUUU?(   R   R"   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps14_fpi  s    c         C` s&   |  d k r d S| d t  j |   S(   Ni    g      4@(   R   R    (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps14_fppo  s    c         C` sP   |  d k  r d S|  d d | k r/ t  j d St  j | d |  d d  d S(	   s6   piecewise linear, constant outside of [0, 0.002/(1+n)]i    grh|i   gMbP?i   gX9v?i  gMb`?(   R   t   eR+   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps15_fu  s
    c         C` s\   d |  k o d d | k n s/ t  j d St  j | d |  d d  | d d d S(   Ni    i   gMbP?i   gX9v?i  gMb`?(   R   RV   R+   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   aps15_fp~  s    $c         C` sl   d |  k o d d | k n s/ t  j d St  j | d |  d d  | d d d | d d d S(   Ni    i   gMbP?i   gX9v?i  gMb`?(   R   RV   R+   (   R   R1   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   aps15_fpp  s    $i   gS?s	   aps.01.00i   g&.>i   g=.@s	   aps.02.00i	   i   gƸ)@s	   aps.02.01i   i
   gxs7z&@s	   aps.02.02i   i   g^^W3@s	   aps.02.03i$   i   g=@s	   aps.02.04i1   i%   gnD@s	   aps.02.05i@   i2   g؛[mK@s	   aps.02.06iQ   iA   g%Q@s	   aps.02.07id   iR   gkYMV@s	   aps.02.08iy   ie   gzi[@s	   aps.02.09iii   is	   aps.03.00is	   aps.03.01i8is	   aps.03.02g?g      @gllRf?s	   aps.04.00i   g_
x?s	   aps.04.01i   glTj"+?s	   aps.04.02g08->?s	   aps.04.03i   g?s	   aps.04.04s	   aps.04.05s	   aps.04.06s	   aps.04.07s	   aps.04.08s	   aps.04.09gffffffg333333@g      ?s	   aps.04.10s	   aps.04.11s	   aps.04.12i   s	   aps.04.13g?s	   aps.05.00g	?s	   aps.06.00gn?s	   aps.06.01gs Hda?s	   aps.06.02gX?s	   aps.06.03g?gi?s	   aps.06.04i   g?g]?s	   aps.06.05i(   g?g.?s	   aps.06.06i<   i   gTϨ?s	   aps.06.07iP   g?g.?s	   aps.06.08g{Gz?gͺ},d|?s	   aps.06.09gz?s	   aps.07.00g3_tF?s	   aps.07.01gmd?s	   aps.07.02g?s	   aps.08.00gΏ$?s	   aps.08.01g~++`?s	   aps.08.02i   gx5[?s	   aps.08.03gB!?s	   aps.08.04g.xz?s	   aps.09.00g.xz?s	   aps.09.01gIl?s	   aps.09.02g:*m?s	   aps.09.03glM:?s	   aps.09.04gR@>s	   aps.09.05gKu->s	   aps.09.06gG"?s	   aps.10.00gXbT?s	   aps.10.01g,C?s	   aps.10.02g=N?s	   aps.10.03gaw?s	   aps.10.04g{Gz?s	   aps.11.00s	   aps.11.01s	   aps.11.02s	   aps.11.03g?s	   aps.12.00s	   aps.12.01s	   aps.12.02s	   aps.12.03s	   aps.12.04i   s	   aps.12.05s	   aps.12.06i   s	   aps.12.07i   s	   aps.12.08s	   aps.12.09s	   aps.12.10i   s	   aps.12.11i   s	   aps.12.12i   s	   aps.12.13s	   aps.12.14i   s	   aps.12.15i   s	   aps.12.16s	   aps.12.17i!   s	   aps.12.18g@Xԯ?s	   aps.13.00igh9?s	   aps.14.00s	   aps.14.01s	   aps.14.02s	   aps.14.03s	   aps.14.04s	   aps.14.05s	   aps.14.06s	   aps.14.07s	   aps.14.08s	   aps.14.09s	   aps.14.10s	   aps.14.11s	   aps.14.12s	   aps.14.13s	   aps.14.14s	   aps.14.15s	   aps.14.16i   s	   aps.14.17s	   aps.14.18s	   aps.14.19s	   aps.14.20i   s	   aps.14.21s	   aps.14.22i   s	   aps.14.23s	   aps.14.24s	   aps.14.25s	   aps.14.26i   s	   aps.14.27s	   aps.14.28s	   aps.14.29s	   aps.14.30i    s	   aps.14.31s	   aps.14.32i"   s	   aps.14.33i#   s	   aps.14.34s	   aps.14.35s	   aps.14.36i&   s	   aps.14.37i'   s	   aps.14.38s	   aps.14.39g-C6?gBi?s	   aps.15.00gpĵx?s	   aps.15.01gD?s	   aps.15.02gY?s	   aps.15.03gVXl
?s	   aps.15.04g^	?s	   aps.15.05g3Qu?s	   aps.15.06gq3юL8?s	   aps.15.07gm۾Rk?s	   aps.15.08gHt/?s	   aps.15.09gW?s	   aps.15.10gBQ?s	   aps.15.11gWΥ?s	   aps.15.12gBN?s	   aps.15.13g@rp?s	   aps.15.14g`MW?s	   aps.15.15g-rc?s	   aps.15.16g[.?s	   aps.15.17g ?s	   aps.15.18g5cA ?s	   aps.15.19g\
>s	   aps.15.20guW>s	   aps.15.21i   g,Y~>s	   aps.15.22i,  gG>s	   aps.15.23i  g]4H->s	   aps.15.24i  g2v>s	   aps.15.25iX  gwaO>s	   aps.15.26i  gAbE٭>s	   aps.15.27i   gӥM>s	   aps.15.28i  gݢO>s	   aps.15.29i  g$lȴ>s	   aps.15.30c         C` s   |  | | S(   s'   z**n-a:  Use to find the n-th root of a(    (   t   zR1   R,   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   cplx01_f>  s    c         C` s   | |  | d S(   Ni   (    (   RZ   R1   R,   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   cplx01_fpC  s    c         C` s   | | d |  | d S(   Ni   i   (    (   RZ   R1   R,   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt
   cplx01_fppG  s    c         C` s   t  j |   | S(   s"   e**z - a: Use to find the log of a(   R   R+   (   RZ   R,   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   cplx02_fK  s    c         C` s   t  j |   S(   N(   R   R+   (   RZ   R,   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   cplx02_fpP  s    c         C` s   t  j |   S(   N(   R   R+   (   RZ   R,   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt
   cplx02_fppT  s    t   x1y              ?y              ?s   complex.01.00g      y               @s   complex.01.01s   complex.01.02s   complex.01.03s   complex.02.00s   complex.02.01c         C` sQ   xJ |  D]B } x9 t  d d g | j d g    D] \ } } | | | <q/ Wq Wd S(   s:   Add "a" and "b" keys to each test from the "bracket" valueR,   R-   R   N(   t   zipR   (   t   testst   dt   kR   (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   _add_a_bu  s    .t   originalc         C` su   |  p	 d }  i t  d 6t d 6t d 6} | j |  g   } | d k	 rq g  | D] } | d | k rL | ^ qL } n  | S(   s  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"]
     Rg   t   apst   complexR   N(   t   _APS_TESTS_DICTSt   _COMPLEX_TESTS_DICTSt   _ORIGINAL_TESTS_DICTSR   R   (   t
   collectionR   t   subsetsRc   t   tc(    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt	   get_tests  s    

,s	   cc.bisects	   cc.ridders	   cc.brenths	   cc.brentqR	   R   R   R   R   (    (    (    (    (    (    (    (    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?^@(   ii(   ii(   i8i(   i   g?(   i   g?(   i   g?(   i
   g?(   i   g?(   i   i   (   i   i   (   i   i   (   i
   i   (   i   i   (   i   i   (   i
   i   (   i   i   (   i   i   (    (   i   (   i   (   i   (   i   (   i   (   i   (   i(   (   i<   g?(   iP   (   id   (   i   (   i
   (   i   (   i   (   i   (   i
   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i
   (   i   (   i   (   i   g      ?(   i   g?(   i   g?(   i   g?(   i   (   i   (   i   (   i   (   i   (   i   (   i	   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i!   (    (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i	   (   i
   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i    (   i!   (   i"   (   i#   (   i$   (   i%   (   i&   (   i'   (   i(   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i    (   i!   (   i"   (   i#   (   i$   (   i%   (   i&   (   i'   (   i(   (   id   (   i   (   i,  (   i  (   i  (   iX  (   i  (   i   (   i  (   i  (   i   iy      ?      ?y      ?      ?(   i   i   y            ?y             @(   i   iy      ?      ?(   i   i   (   iy      ?       @y      ?      ?(   y              ?y      ?       @y      ?      ?(j   t
   __future__R    R   R   R   t   numpyR   t   scipy.optimizeR   t   cct   descriptionR   R   R   R	   R
   R   R   R   R   R   R   R   R   t   _ORIGINAL_TESTS_KEYSt   sqrtt   infR   t   _ORIGINAL_TESTSt   testcaset   dictRb   Rl   R!   R#   R$   R(   R)   R*   R.   R/   R0   R2   R3   R4   R5   R6   R7   R8   R9   R:   R;   R<   R=   R>   R?   R@   RA   RB   RC   RD   RE   RF   RG   RH   RI   RK   RL   RM   t   logt   finfot   floatt   maxRN   RP   RQ   RR   RS   RT   RU   RW   RX   RY   t   _APS_TESTS_KEYSt   pit
   _APS_TESTSRj   R[   R\   R]   R^   R_   R`   t   _COMPLEX_TESTS_KEYSt   _COMPLEX_TESTSRk   Rf   Rp   t   bisectt   riddert   brentht   brentqt   methodst   mstringst	   functionst   fstrings(    (    (    s7   lib/python2.7/site-packages/scipy/optimize/_tstutils.pyt   <module>   s  (												
	!000--7(																																																!1'''''''''''''''''''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''++++++++++++++++++++++++++++++++++++++++$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*(						!!00!(.(	


"