
+[c           @   st   d  d l  Z  d  d l Td   Z d   Z d   Z d   Z d   Z d   Z d	   Z d
   Z	 d   Z
 d   Z d S(   iN(   t   *c          C   s   d t  _ d   }  t |  d d g d d t \ } } | d k  sH t  xM t d  D]? } d | d	 } t t | |  |  |   | k  sU t  qU Wd  S(
   Ni   c         S   s   t  d d |   |  S(   Ni   (   t   cos(   t   x(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   <lambda>   s    i   i   i   t   errorgh㈵>i
   g      @(   t   mpt   dpst   chebyfitt   Truet   AssertionErrort   ranget   abst   polyval(   t   ft   pt   errt   iR   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   test_approximation   s    		$c           C   sY   d t  _ t d   d  j t d  d  s4 t  t d   t  j t  sU t  d  S(   Ni   c         S   s   |  t  |   |  d S(   Ni   (   t   sin(   R   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyR      s    i    i   i   c         S   s   d d |  |  S(   Ni   (    (   t   n(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyR      s    (   R   R   t   limitt   aet   mpfR	   t   inft   e(    (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   test_limits   s    	+c          C   s   t  g  d  d k s t  t  d g d  d k s9 t  t  d g d  d k sW t  d d d d g }  t  |  d  d k s t  t  |  d d t d	 k s t  d  S(
   Ni   i    i   i   ii   t
   derivativei   (   i   i   (   R   R	   R   (   R   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   test_polyval   s    c          C   s   t  d d g  }  |  d j d  s+ t  t  d d d g  \ }  } |  j d t d  t  si t  | j d t d  t  s t  t  d g  g  k s t  t j t d    d  S(	   Ni   ii    i   i   i   ic           S   s   t  d g  S(   Ni    (   t	   polyroots(    (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyR   #   s    (   R   R   R	   t   sqrtt   jt   pytestt   raisest
   ValueError(   R   t   q(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   test_polyroots   s    ##c       F   C   sA  d }  d d d d d d d d d d d d d	 d d
 d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d  d d! d d" d d# gA } t  j d$  ]t j t  j  + t | d% d& d' t d( t d) |  d* Wd  QXt | d% d+ d' t d( t d) |  d* } g  | D] } t |  ^ qM} | d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk g@ k s7t	  Wd  QXd  S(l   Ni@   l	   #!yUMDQj~U4	 i    l`<	&&
 xXD`D l	   #~O6dIW6ob9l N$UVOF>`}Dl	   ha0r3(|Wo9Elcs9lMhPc;/,3 l
   p~	#]ls<m lW)4G`Y l
   <g?I"GX)p@/ lg24Kc89z l
    1_bm-9w:bYj l	@bmDu#pO2> l
   J={|L	m~;` l`|fl?'h_K l
   eo.!03a7# l / $+-kMsf]`:l	   ;bfLHQLRl /v\ QB8%l	   e]r+a ;M~DMLl`|]B`3*0Vwk_ l	   J5]c<OJg1 l	x,a6F~E8P l    V'6@h>)l~&-ME	A"l   <-AGn,a;0$S lW?n05%Zu l   pbz^.qlcd qTT l   h9N$$).lF4 l Ns,1j	l   #vsKn?b; l`<x!uI#!'di   t   maxstepsi   t   cleanupR   t	   extrapreci
   i2   s   -0.999s   -0.996s   -0.991s   -0.983s   -0.973s   -0.961s   -0.946s   -0.93s   -0.911s   -0.889s   -0.866s   -0.841s   -0.813s   -0.784s   -0.753s   -0.72s   -0.685s   -0.649s   -0.611s   -0.572s   -0.531s   -0.489s   -0.446s   -0.402s   -0.357s   -0.311s   -0.265s   -0.217s   -0.17s   -0.121s   -0.073s   -0.0243s   0.0243s   0.073s   0.121s   0.17s   0.217s   0.265s   0.311s   0.357s   0.402s   0.446s   0.489s   0.531s   0.572s   0.611s   0.649s   0.685s   0.72s   0.753s   0.784s   0.813s   0.841s   0.866s   0.889s   0.911s   0.93s   0.946s   0.961s   0.973s   0.983s   0.991s   0.996s   0.999(
   R   t   workdpsR   R    t   NoConvergenceR   R   t   Falset   strR	   (   R   t   coeffst   rootst   r(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   test_polyroots_legendre%   sh    	c       B   C   s  d }  d d d d d d d d d d d d d	 d d
 d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d  d d! d d" d d# gA } t  d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd gA  } t j de t j  - t | df dg dh t di t dj de |  } Wd  QXt j t j	  ' t | df dk dh t di t dj |  Wd  QXt | df dk dh t di t dj |  dl | \ } } t
 t  |  t  |  j t   | k  st  t | df dm dh t di t dj |  dl | dn  \ } } t
 t  |  t  |  j t   | k  st  d  S(o   Nid   l	   #!yUMDQj~U4	 i    l`<	&&
 xXD`D l	   #~O6dIW6ob9l N$UVOF>`}Dl	   ha0r3(|Wo9Elcs9lMhPc;/,3 l
   p~	#]ls<m lW)4G`Y l
   <g?I"GX)p@/ lg24Kc89z l
    1_bm-9w:bYj l	@bmDu#pO2> l
   J={|L	m~;` l`|fl?'h_K l
   eo.!03a7# l / $+-kMsf]`:l	   ;bfLHQLRl /v\ QB8%l	   e]r+a ;M~DMLl`|]B`3*0Vwk_ l	   J5]c<OJg1 l	x,a6F~E8P l    V'6@h>)l~&-ME	A"l   <-AGn,a;0$S lW?n05%Zu l   pbz^.qlcd qTT l   h9N$$).lF4 l Ns,1j	l   #vsKn?b; l`<x!uI#!'ds   -0.999s   -0.996s   -0.991s   -0.983s   -0.973s   -0.961s   -0.946s   -0.93s   -0.911s   -0.889s   -0.866s   -0.841s   -0.813s   -0.784s   -0.753s   -0.72s   -0.685s   -0.649s   -0.611s   -0.572s   -0.531s   -0.489s   -0.446s   -0.402s   -0.357s   -0.311s   -0.265s   -0.217s   -0.17s   -0.121s   -0.073s   -0.0243s   0.0243s   0.073s   0.121s   0.17s   0.217s   0.265s    0.311s   0.357s   0.402s   0.446s   0.489s   0.531s   0.572s   0.611s   0.649s   0.685s   0.72s   0.753s   0.784s   0.813s   0.841s   0.866s   0.889s   0.911s   0.93s   0.946s   0.961s   0.973s   0.983s   0.991s   0.996s   0.999s   1.0i   R$   i2   R%   R   R&   i   t
   roots_initi   i<   (   t   matrixR   R'   R   R   R   R)   R   R    R(   t   maxt   applyR   R	   (   t
   extra_precR+   R/   t   roots_exactR,   R   t   roots1t   err1(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   test_polyroots_legendre_init]   sv    	1c    	      C   s  t  d  }  d t _ d } |  g } d } x6 t d | d  D]! } | | 9} | j |  |  q> Wt | | d | d  \ } } xn t d d d  D]Z } t | d  d  d  |  t | d  d  d  |  } | j t	 |  d  s t
  q Wd	 t _ d  S(
   Ni   i   i
   i   i    g?ig|=i   (   R   R   R   R
   t   appendt   padet   arangeR   R   t   expR	   (	   t   onet   Nt   at   kR   R   R"   R   R-   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt	   test_pade   s    		
 6"c          C   s"  d t  _ t d   d d g d  \ }  } |  d j d  sC t  |  d j d t d	  d t  sn t  |  d j d	 t d	  d
 t  s t  | d d k s t  | d j d	 d t  s t  | d j d	 d
 t  s t  t |  | f d d g d  j d  st  d  S(   Ni   c         S   s   |  d S(   Ni   (    (   R   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyR      s    ii   i    g      ?i   ii   i   g?(   R   R   t   fourierR   R	   R   t   pit
   fourierval(   t   ct   s(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   test_fourier   s    	!++!!c           C   sC   d t  _ t d   d d  j d t d t  d  s? t  d  S(   Ni   c         S   s   |  S(   N(    (   t   t(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyR      s    i   g      i   i   (   R   R   t	   differintR   R   RB   R	   (    (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   test_differint   s    	c          C   s)  d t  _ d }  d   } d   } | |   } t | |  d d j |  sQ t  t | |  d d j |  su t  t | |  d d j |  s t  d	 }  | |   } t | |  d d j |  s t  t | |  d d j |  s t  t | |  d d j |  st  d }  d
   } d   } | |   } t | |  d d j |  s_t  t | |  d d j |  st  t | |  d d j |  st  d	 }  | |   } t | |  d d j |  st  t | |  d d j |  st  t | |  d d j |  s%t  d  S(   Ni   g{Gz?c         S   s   d |  d d S(   Ni   i   (    (   R   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyR      s    c         S   s   |  t  |   S(   N(   R;   (   RG   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyR      s    t   methodt   talbott   stehfestt   dehoogg      ?c         S   s   t  |   |  S(   N(   t   log(   R   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyR      s    c         S   s   t  t |   S(   N(   t   eulerRN   (   RG   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyR      s    (   R   R   t   invertlaplaceR   R	   (   RG   t   fpt   ftt   ftt(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   test_invlap   s2    			$$$$$$		$$$$$(   R   t   mpmathR   R   R   R#   R.   R7   R@   RF   RI   RT   (    (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_calculus.pyt   <module>   s   
						
	8	>			