ó
Ë½÷Xc           @` sú  d  Z  d d l m Z m Z m Z d d l Z d d l m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z d d l m Z d d l m Z m Z m Z m Z m Z m Z m Z m Z d d l m Z m Z m  Z  d e f d	 „  ƒ  YZ! d
 e f d „  ƒ  YZ" d e" f d „  ƒ  YZ# d e" f d „  ƒ  YZ$ d e f d „  ƒ  YZ% d e f d „  ƒ  YZ& d d7 d „  ƒ  YZ' d e' f d „  ƒ  YZ( d e' f d „  ƒ  YZ) d e' f d „  ƒ  YZ* d e' f d „  ƒ  YZ+ e( e) e* e+ g Z, d „  Z- d „  Z. d  „  Z/ d! „  Z0 d" „  Z1 d# „  Z2 d$ „  Z3 d% „  Z4 d& e5 f d' „  ƒ  YZ6 d( e6 e f d) „  ƒ  YZ7 d* e6 e f d+ „  ƒ  YZ8 d, e6 e f d- „  ƒ  YZ9 d. e6 e f d/ „  ƒ  YZ: d0 e6 e f d1 „  ƒ  YZ; d2 „  Z< d3 „  Z= d4 „  Z> d5 „  Z? e@ d6 k röe ƒ  n  d S(8   s"   
Tests for numerical integration.
i    (   t   divisiont   print_functiont   absolute_importN(   t   aranget   zerost   arrayt   dott   sqrtt   cost   sint   eyet   pit   expt   allclose(   t   xrange(   t   assert_t   TestCaset   run_module_suitet   assert_array_almost_equalt   assert_raisest   assert_allcloset   assert_array_equalt   assert_equal(   t   odeintt   odet   complex_odet
   TestOdeintc           B` s   e  Z d  „  Z d „  Z RS(   c         C` sS   t  d | j d ƒ } t | j | j | d t ƒ\ } } t | j | | ƒ ƒ d  S(   Ng        gš™™™™™©?t   full_output(   R   t   stop_tR   t   ft   z0t   TrueR   t   verify(   t   selft   problemt   tt   zt   infodict(    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   _do_problem   s    $c         C` s:   x3 t  D]+ } | ƒ  } | j r% q n  |  j | ƒ q Wd  S(   N(   t   PROBLEMSt   cmplxR&   (   R!   t   problem_clsR"   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_odeint   s
    		(   t   __name__t
   __module__R&   R*   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR      s   	t   TestODEClassc           B` s   e  Z d Z d  d „ Z RS(   t   adamsc   	   
   ` s9  ‡  f d †  } d  } t ˆ  d ƒ r6 ‡  f d †  } n  i  } ˆ  j d  k	 sZ ˆ  j d  k	 rw ˆ  j | d <ˆ  j | d <n  |  j | | ƒ } | j | d ˆ  j d d ˆ  j d d	 | | | j ˆ  j	 d
 d ƒ| j
 ˆ  j ƒ } t | | j ƒ t | j ƒ  ˆ  | f ƒ t ˆ  j t | g ƒ ˆ  j ƒ ˆ  | f ƒ d  S(   Nc         ` s   ˆ  j  | |  ƒ S(   N(   R   (   R#   R$   (   R"   (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   <lambda>-   s    t   jacc         ` s   ˆ  j  | |  ƒ S(   N(   R0   (   R#   R$   (   R"   (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR/   0   s    t   ubandt   lbandt   atoli
   t   rtolt   methodR#   g        (   t   Nonet   hasattrR2   R1   t	   ode_classt   set_integratorR3   R4   t   set_initial_valueR   t	   integrateR   R   t   yR   t
   successfulR    R   (	   R!   R"   t
   integratorR5   R   R0   t   integrator_paramst   igR$   (    (   R"   sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR&   *   s&    N(   R+   R,   R6   R8   R&   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR-   &   s   t   TestOdec           B` sM   e  Z e Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(   c         C` s_   xX t  D]P } | ƒ  } | j r% q n  | j sD |  j | d d ƒ n  |  j | d d ƒ q Wd  S(   Nt   vodeR.   t   bdf(   R'   R(   t   stiffR&   (   R!   R)   R"   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt	   test_vodeJ   s    			c         C` sP   xI t  D]A } | ƒ  } | j s5 |  j | d d ƒ n  |  j | d d ƒ q Wd  S(   Nt   zvodeR.   RC   (   R'   RD   R&   (   R!   R)   R"   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt
   test_zvodeT   s
    		c         C` s=   x6 t  D]. } | ƒ  } | j r% q n  |  j | d ƒ q Wd  S(   Nt   lsoda(   R'   R(   R&   (   R!   R)   R"   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt
   test_lsoda\   s
    		c         C` sa   xZ t  D]R } | ƒ  } | j r% q n  | j r4 q n  t | d ƒ rI q n  |  j | d ƒ q Wd  S(   NR0   t   dopri5(   R'   R(   RD   R7   R&   (   R!   R)   R"   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_dopri5d   s    			c         C` sa   xZ t  D]R } | ƒ  } | j r% q n  | j r4 q n  t | d ƒ rI q n  |  j | d ƒ q Wd  S(   NR0   t   dop853(   R'   R(   RD   R7   R&   (   R!   R)   R"   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_dop853p   s    			c         C` sª   x£ d D]› } d „  } t  | ƒ j | ƒ } | j d d ƒ t  | ƒ j | ƒ } | j d d ƒ | j | j d ƒ | j | j d ƒ t t | j | j d ƒ q Wd  S(   NRB   RF   RH   c         S` s   d S(   Ng      ð?(    (   R#   R<   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR/   ~   s    i    gš™™™™™¹?(   s   vodes   zvodes   lsoda(   R   R9   R:   R;   R#   R   t   RuntimeError(   R!   t   solR   t   rt   r2(    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_concurrent_fail|   s    	c         C` sº  d „  } xªt  d ƒ D]œ} x´ d D]¬ } t | ƒ j | ƒ } | j d d ƒ t | ƒ j | ƒ } | j d d ƒ | j | j d	 ƒ | j | j d	 ƒ | j | j d	 ƒ t | j d	 ƒ t | j d
 ƒ q# WxÜ d D]Ô } t | ƒ j | ƒ } | j d d ƒ t | ƒ j | ƒ } | j d d ƒ | j | j d	 ƒ | j | j d	 ƒ | j | j d	 ƒ | j | j d	 ƒ | j | j d	 ƒ t | j d ƒ t | j d
 ƒ qÚ Wq Wd  S(   Nc         S` s   d S(   Ng      ð?(    (   R#   R<   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR/   Œ   s    i   RB   RF   RH   RJ   RL   i    gš™™™™™¹?gš™™™™™É?g333333Ó?(   s   vodes   zvodes   lsodas   dopri5s   dop853(   s   dopri5s   dop853(   R   R   R9   R:   R;   R#   R   R<   (   R!   R   t   kRO   RP   RQ   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_concurrent_ok‹   s0    	(   R+   R,   R   R8   RE   RG   RI   RK   RM   RR   RT   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRA   F   s   	
					t   TestComplexOdec           B` s2   e  Z e Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C` sP   xI t  D]A } | ƒ  } | j s5 |  j | d d ƒ q |  j | d d ƒ q Wd  S(   NRB   R.   RC   (   R'   RD   R&   (   R!   R)   R"   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRE   ²   s
    		c         C` s.   x' t  D] } | ƒ  } |  j | d ƒ q Wd  S(   NRH   (   R'   R&   (   R!   R)   R"   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRI   »   s    	c         C` sR   xK t  D]C } | ƒ  } | j r% q n  t | d ƒ r: q n  |  j | d ƒ q Wd  S(   NR0   RJ   (   R'   RD   R7   R&   (   R!   R)   R"   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRK   Á   s    		c         C` sR   xK t  D]C } | ƒ  } | j r% q n  t | d ƒ r: q n  |  j | d ƒ q Wd  S(   NR0   RL   (   R'   RD   R7   R&   (   R!   R)   R"   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRM   Ë   s    		(   R+   R,   R   R8   RE   RI   RK   RM   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRU   ®   s
   				
t
   TestSoloutc           B` s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c   	      ` sÈ   g  ‰  g  ‰ d } d } d d g } ‡  ‡ f d †  } d „  } t  | ƒ j | ƒ } | j | ƒ | j | | ƒ | j | ƒ } t ˆ d | ƒ t ˆ d | ƒ t ˆ  d | ƒ t ˆ  d | ƒ d  S(	   Ng        g      $@g      ð?g       @c         ` s$   ˆ  j  |  ƒ ˆ j  | j ƒ  ƒ d  S(   N(   t   appendt   copy(   R#   R<   (   t   tst   ys(    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   soloutà   s    c         S` s   | d | d | d d g S(   Ni    i   i   (    (   R#   R<   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   rhsä   s    i    iÿÿÿÿ(   R   R9   t
   set_soloutR:   R;   R   R   (	   R!   R>   t   t0t   tendt   y0R[   R\   R@   t   ret(    (   RY   RZ   sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   _run_solout_testØ   s    	c         C` s"   x d D] } |  j  | ƒ q Wd  S(   NRJ   RL   (   s   dopri5s   dop853(   Rb   (   R!   R>   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_soloutð   s    c   	      ` sÈ   g  ‰  g  ‰ d } d } d d g } ‡  ‡ f d †  } d „  } t  | ƒ j | ƒ } | j | | ƒ | j | ƒ | j | ƒ } t ˆ d | ƒ t ˆ d | ƒ t ˆ  d | ƒ t ˆ  d | ƒ d  S(	   Ng        g      $@g      ð?g       @c         ` s$   ˆ  j  |  ƒ ˆ j  | j ƒ  ƒ d  S(   N(   RW   RX   (   R#   R<   (   RY   RZ   (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR[   ü   s    c         S` s   | d | d | d d g S(   Ni    i   i   (    (   R#   R<   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR\      s    i    iÿÿÿÿ(   R   R9   R:   R]   R;   R   R   (	   R!   R>   R^   R_   R`   R[   R\   R@   Ra   (    (   RY   RZ   sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   _run_solout_after_initial_testô   s    	c         C` s"   x d D] } |  j  | ƒ q Wd  S(   NRJ   RL   (   s   dopri5s   dop853(   Rd   (   R!   R>   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_solout_after_initial  s    c         ` sæ   g  ‰ g  ‰ d } d ‰  d d g } ‡  ‡ ‡ f d †  } d „  } t  | ƒ j | ƒ } | j | ƒ | j | | ƒ | j ˆ  ƒ } t ˆ d | ƒ t ˆ d | ƒ t ˆ d | ƒ t ˆ d ˆ  d k ƒ t ˆ d ˆ  k  ƒ d  S(	   Ng        g      $@g      ð?g       @c         ` s8   ˆ j  |  ƒ ˆ j  | j ƒ  ƒ |  ˆ  d k r4 d Sd  S(   Ng       @iÿÿÿÿ(   RW   RX   (   R#   R<   (   R_   RY   RZ   (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR[     s    c         S` s   | d | d | d d g S(   Ni    i   i   (    (   R#   R<   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR\     s    i    iÿÿÿÿ(   R   R9   R]   R:   R;   R   R   R   (   R!   R>   R^   R`   R[   R\   R@   Ra   (    (   R_   RY   RZ   sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   _run_solout_break_test  s     	c         C` s"   x d D] } |  j  | ƒ q Wd  S(   NRJ   RL   (   s   dopri5s   dop853(   Rf   (   R!   R>   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_solout_break+  s    (   R+   R,   Rb   Rc   Rd   Re   Rf   Rg   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRV   Ö   s   					t   TestComplexSoloutc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c   	      ` sÅ   g  ‰  g  ‰ d } d } d g } ‡  ‡ f d †  } d „  } t  | ƒ j | ƒ } | j | ƒ | j | | ƒ | j | ƒ } t ˆ d | ƒ t ˆ d | ƒ t ˆ  d | ƒ t ˆ  d | ƒ d  S(   Ng        g      4@c         ` s$   ˆ  j  |  ƒ ˆ j  | j ƒ  ƒ d  S(   N(   RW   RX   (   R#   R<   (   RY   RZ   (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR[   :  s    c         S` s   d |  d d g S(   Ng      ð?g      $@y              ð?(    (   R#   R<   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR\   >  s    i    iÿÿÿÿ(   R   R9   R]   R:   R;   R   R   (	   R!   R>   R^   R_   R`   R[   R\   R@   Ra   (    (   RY   RZ   sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRb   2  s    		c         C` s"   x d D] } |  j  | ƒ q Wd  S(   NRJ   RL   (   s   dopri5s   dop853(   Rb   (   R!   R>   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRc   J  s    c         ` sã   g  ‰ g  ‰ d } d ‰  d g } ‡  ‡ ‡ f d †  } d „  } t  | ƒ j | ƒ } | j | ƒ | j | | ƒ | j ˆ  ƒ } t ˆ d | ƒ t ˆ d | ƒ t ˆ d | ƒ t ˆ d ˆ  d k ƒ t ˆ d ˆ  k  ƒ d  S(   Ng        g      4@c         ` s8   ˆ j  |  ƒ ˆ j  | j ƒ  ƒ |  ˆ  d k r4 d Sd  S(   Ng       @iÿÿÿÿ(   RW   RX   (   R#   R<   (   R_   RY   RZ   (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR[   V  s    c         S` s   d |  d d g S(   Ng      ð?g      $@y              ð?(    (   R#   R<   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR\   \  s    i    iÿÿÿÿg       @(   R   R9   R]   R:   R;   R   R   R   (   R!   R>   R^   R`   R[   R\   R@   Ra   (    (   R_   RY   RZ   sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRf   N  s     		c         C` s"   x d D] } |  j  | ƒ q Wd  S(   NRJ   RL   (   s   dopri5s   dop853(   Rf   (   R!   R>   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRg   i  s    (   R+   R,   Rb   Rc   Rf   Rg   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRh   0  s   			t   ODEc           B` s>   e  Z d  Z e Z e Z d Z g  Z d Z	 d Z
 d Z d Z RS(   s   
    ODE problem
    i   gíµ ÷Æ°>gñhãˆµøä>N(   R+   R,   t   __doc__t   FalseRD   R(   R   R   R6   R2   R1   R3   R4   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRi   s  s   t   SimpleOscillatorc           B` sG   e  Z d  Z d Z e d d g e ƒ Z d Z d Z d „  Z	 d „  Z
 RS(	   sÇ   
    Free vibration of a simple oscillator::
        m \ddot{u} + k u = 0, u(0) = u_0 \dot{u}(0) \dot{u}_0
    Solution::
        u(t) = u_0*cos(sqrt(k/m)*t)+\dot{u}_0*sin(sqrt(k/m)*t)/sqrt(k/m)
    i   g
×£p=
·?g      ð?gš™™™™™¹?g      @c         C` s;   t  d t ƒ } d | d <|  j |  j | d <t | | ƒ S(   Ni   g      ð?i    i   (   i   i   (   i    i   (   i   i    (   R   t   floatRS   t   mR   (   R!   R$   R#   t   tmp(    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR     s    
c         C` s}   t  |  j |  j ƒ } |  j d t | | ƒ |  j d t | | ƒ | } t | | d  d  … d f d |  j d |  j ƒS(   Ni    i   R3   R4   (	   R   RS   Rn   R   R   R	   R   R3   R4   (   R!   t   zsR#   t   omegat   u(    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR    –  s    8gq=
×£pñ?(   R+   R,   Rj   R   R   Rm   R   RS   Rn   R   R    (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRl   ƒ  s   	t
   ComplexExpc           B` sT   e  Z d  Z d e Z e d d d d d g ƒ Z e Z d „  Z	 d „  Z
 d	 „  Z RS(
   s   The equation :lm:`\dot u = i u`g®Gáz®ó?y              ð?y               @y              @y              @y              @c         C` s   d | S(   Ny              ð?(    (   R!   R$   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR   ¢  s    c         C` s   d t  d ƒ S(   Ny              ð?i   (   R
   (   R!   R$   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR0   ¥  s    c         C` s6   |  j  t d | ƒ } t | | d |  j d |  j ƒS(   Ny              ð?R3   R4   (   R   R   R   R3   R4   (   R!   Rp   R#   Rr   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR    ¨  s    (   R+   R,   Rj   R   R   R   R   R   R(   R   R0   R    (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRs   œ  s   
		t   Pic           B` s5   e  Z d  Z d Z d g Z e Z d „  Z d „  Z RS(   s'   Integrate 1/(t + 1j) from t=-10 to t=10i   i    c         C` s   t  d | d d g ƒ S(   Ng      ð?i
   y              ð?(   R   (   R!   R$   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR   ³  s    c         C` sB   d t  j d ƒ } t | | d d  d  … f d |  j d |  j ƒS(   Ny               Ài
   iÿÿÿÿR3   R4   (   t   npt   arctanR   R3   R4   (   R!   Rp   R#   Rr   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR    ¶  s    (	   R+   R,   Rj   R   R   R   R(   R   R    (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRt   ­  s   		t   CoupledDecayc           B` s_   e  Z d  Z e Z d Z d d d g Z d Z d Z d d d	 g Z	 d
 „  Z
 d „  Z d „  Z RS(   se   
    3 coupled decays suited for banded treatment
    (banded mode makes it necessary when N>>3)
    g      à?g      @g      @g      *@i   i    gÃõ(\ÂÅ?gq=
×£pÍ?gÂõ(\Ò?c         C` sf   |  j  } t j | d | d | d | d | d | d | d | d | d | d g ƒ S(   Ni    i   i   (   t   lmbdRu   R   (   R!   R$   R#   Rx   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR   É  s    	 c         ` s¯   ˆ j  } t j ˆ j ˆ j d d f d d ƒ‰  ‡  ‡ f d †  } | d d | d ƒ | d d | d ƒ | d d | d ƒ | d d | d ƒ | d d | d ƒ ˆ  S(   Ni   i   t   ordert   Fc         ` s   | ˆ  ˆ j  |  | | f <d  S(   N(   R1   (   t   rit   cit   val(   t   jR!   (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   set_jß  s    i    i   (   Rx   Ru   R   R2   R1   (   R!   R$   R#   Rx   R   (    (   R~   R!   sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR0   Ï  s    	)c      	   C` sk  t  j |  j ƒ } | d | d } | d | d } | d | d } t  j | d | ƒ } t  j | d | ƒ } t  j | d | ƒ }	 t  j |  j d | |  j d | |  j d | d | | | |  j d |	 |  j d | d | | |	 | d | d |  j d | d | | |	 d | | |	 f ƒ j ƒ  }
 t |
 | d |  j d |  j	 ƒS(   Ni   i    i   R3   R4   (
   Ru   R   Rx   R   t   vstackR   t	   transposeR   R3   R4   (   R!   Rp   R#   Rx   t   d10t   d21t   d20t   e0t   e1t   e2Rr   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR    è  s    --0(   R+   R,   Rj   R   RD   R   R   R2   R1   Rx   R   R0   R    (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyRw   »  s   		c         C` s   | d | d g } | S(   Ni   i    (    (   R#   t   xt   dxdt(    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR   ÿ  s    c         C` s"   t  d d g d d g g ƒ } | S(   Ng        g      ð?g      ð¿(   R   (   R#   Rˆ   R~   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR0     s    c         C` s!   | | d | | d g } | S(   Ni   i    (    (   R#   Rˆ   Rq   R‰   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   f1
  s    c         C` s#   t  d | g | d g g ƒ } | S(   Ng        (   R   (   R#   Rˆ   Rq   R~   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   jac1  s    c         C` s!   | | d | | d g } | S(   Ni   i    (    (   R#   Rˆ   t   omega1t   omega2R‰   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   f2  s    c         C` s#   t  d | g | d g g ƒ } | S(   Ng        (   R   (   R#   Rˆ   RŒ   R   R~   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   jac2  s    c         C` s)   | d | d | d | d g } | S(   Ni    i   (    (   R#   Rˆ   Rq   R‰   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   fv   s    %c         C` s+   t  d | d g | d d g g ƒ } | S(   Ng        i    i   (   R   (   R#   Rˆ   Rq   R~   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   jacv%  s    t   ODECheckParameterUsec           B` sP   e  Z d  Z d Z e Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   s=   Call an ode-class solver with several cases of parameter use.t    c         C` s`   t  | | ƒ } |  j r@ | j |  j d d d d d |  j ƒn | j |  j d d d d ƒ| S(   NR3   g•Ö&è.>R4   gH¯¼šò×z>t   with_jacobian(   R   t   solver_uses_jacR9   t   solver_name(   R!   R   R0   t   solver(    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   _get_solver5  s    	c         C` sC   d d g } | j  | d ƒ | j t ƒ t | j d d g ƒ d  S(   Ng      ð?g        g      ð¿(   R:   R;   R   R   R<   (   R!   R—   t   ic(    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   _check_solverA  s    c         C` s#   |  j  t t ƒ } |  j | ƒ d  S(   N(   R˜   R   R0   Rš   (   R!   R—   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_no_paramsG  s    c         C` sO   |  j  t t ƒ } d } | j | ƒ |  j r> | j | ƒ n  |  j | ƒ d  S(   Ng      ð?(   R˜   RŠ   R‹   t   set_f_paramsR•   t   set_jac_paramsRš   (   R!   R—   Rq   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_one_scalar_paramK  s    	c         C` s[   |  j  t t ƒ } d } d } | j | | ƒ |  j rJ | j | | ƒ n  |  j | ƒ d  S(   Ng      ð?(   R˜   RŽ   R   Rœ   R•   R   Rš   (   R!   R—   RŒ   R   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_two_scalar_paramsS  s    	c         C` sU   |  j  t t ƒ } d d g } | j | ƒ |  j rD | j | ƒ n  |  j | ƒ d  S(   Ng      ð?(   R˜   R   R‘   Rœ   R•   R   Rš   (   R!   R—   Rq   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_vector_param\  s    	(   R+   R,   Rj   R–   Rk   R•   R˜   Rš   R›   Rž   RŸ   R    (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR’   +  s   						t   DOPRI5CheckParameterUsec           B` s   e  Z d  Z e Z RS(   RJ   (   R+   R,   R–   Rk   R•   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR¡   e  s   t   DOP853CheckParameterUsec           B` s   e  Z d  Z e Z RS(   RL   (   R+   R,   R–   Rk   R•   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR¢   j  s   t   VODECheckParameterUsec           B` s   e  Z d  Z e Z RS(   RB   (   R+   R,   R–   R   R•   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR£   o  s   t   ZVODECheckParameterUsec           B` s   e  Z d  Z e Z RS(   RF   (   R+   R,   R–   R   R•   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR¤   t  s   t   LSODACheckParameterUsec           B` s   e  Z d  Z e Z RS(   RH   (   R+   R,   R–   R   R•   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR¥   y  s   c          C` sP   d }  d g } t  d „  |  | d t ƒ\ } } t | t j |  g g ƒ ƒ d  S(   Ni   i    c         S` s   |  S(   N(    (   R<   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR/   ƒ  s    R   (   R   R   R   Ru   R   (   R`   R#   R<   t   info(    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_odeint_trivial_time~  s    	!c          ` s2  d „  }  d „  } d „  } d „  ‰  ‡  f d †  } t  d d d d g d	 d
 d d g d d d d g d d d	 d g g ƒ } t j d ƒ } t j  d d d d g ƒ } t |  | | d | f d t d d d d d d d | ƒ\ } } t |  | | d | f d t d d d d d d d | d t ƒ\ }	 }
 t |  | | d | f d t d d d d d d d ˆ  d d d  d! ƒ\ } } t |  | | d | f d t d d d d d d d | d d d  d! d t ƒ	\ } } t | |	 d" d# ƒt | | d d$ d" d% ƒt | | d" d& ƒt | d' |
 d' ƒ t | d' | d' ƒ d  S((   Nc         S` s   | j  |  ƒ S(   N(   R   (   R<   R#   t   c(    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   funcŠ  s    c         S` s   | S(   N(    (   R<   R#   R¨   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyR0     s    c         S` s   | j  j d d ƒ S(   NRy   t   C(   t   TRX   (   R<   R#   R¨   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   jac_transpose  s    c         S` sv   t  j t  j d t  j | d ƒ f t  j | ƒ t  j t  j | d ƒ d f t  j t  j | d ƒ d d f f ƒ } | S(   Ni    i   iÿÿÿÿiþÿÿÿ(   Ru   t	   row_stackt   r_t   diag(   R<   R#   R¨   R0   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt	   bjac_rows“  s
    "(c         ` s   ˆ  |  | | ƒ j  j d d ƒ S(   NRy   Rª   (   R«   RX   (   R<   R#   R¨   (   R°   (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt	   bjac_colsš  s    i3ÿÿÿg{®Gáz„?g        gš™™™™™¹?g      Àg{®Gáz”?gü©ñÒMbP?g       Àg      ð¿i   i    i   i
   id   t   argsR   R3   g‚vIhÂ%<=R4   g•dyáý¥=t   mxstepi'  t   Dfunt	   col_derivt   mli   t   mui   t   err_msgs   sol1 != sol2gê-™—q=s   sol1 != sol3s   sol3 != sol4t   nje(   R   Ru   t   onesR   R   R   R   (   R©   R0   R¬   R±   R¨   R`   R#   t   sol1t   info1t   sol2t   info2t   sol3t   info3t   sol4t   info4(    (   R°   sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_odeint_banded_jacobian‡  s8    				!c          C` sç   d „  }  d „  } d „  } d „  } d „  } d „  } d „  } t  t t | d d	 d
 g ƒ t  t t | d d	 d
 g ƒ t  t t |  d d	 d
 g d | ƒt  t t |  d d	 d
 g d | ƒt  t t | d d g d	 d
 g d | ƒd  S(   Nc         S` s   d |  S(   Niœÿÿÿ(    (   Rˆ   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   sys1dÇ  s    c         S` s   d d S(   Ng      ð?i    (    (   Rˆ   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   bad1Ê  s    c         S` s   d S(   Nt   foo(    (   Rˆ   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   bad2Í  s    c         S` s   d d S(   Ng      ð?i    (    (   Rˆ   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   bad_jac1Ð  s    c         S` s
   d g g S(   NRÆ   (    (   Rˆ   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   bad_jac2Ó  s    c         S` s   d |  d d |  d g S(   Niœÿÿÿi    gš™™™™™¹¿i   (    (   Rˆ   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   sys2dÖ  s    c         S` s   d d d g d d g g S(   Ng      ð?i    gš™™™™™¹¿(    (   Rˆ   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   sys2d_bad_jacÙ  s    g      ð?i    i   R´   (   R   t   ZeroDivisionErrorR   t
   ValueError(   RÄ   RÅ   RÇ   RÈ   RÉ   RÊ   RË   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_odeint_errorsÆ  s    							""!c          C` sÈ   d „  }  d „  } d „  } d d g d d g g } t  t t | | d d g ƒ d d g d d g g } t  t t | d g | ƒ t  t t |  d	 d d g ƒ t  t t | d	 d	 g d d g d
 | ƒd  S(   Nc         S` s
   d d g S(   Ni   iÿÿÿÿ(    (   Rˆ   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   badrhsé  s    c         S` s   d |  S(   Niœÿÿÿ(    (   Rˆ   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   sys1ì  s    c         S` s   d d d g g S(   Ni    (    (   Rˆ   R#   (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   badjacï  s    i    i   i   i   g      $@i
   R´   (   R   RÍ   R   RN   (   RÏ   RÐ   RÑ   t   bad_y0t   bad_t(    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   test_odeint_bad_shapesæ  s    			t   __main__(    (A   Rj   t
   __future__R    R   R   t   numpyRu   R   R   R   R   R   R   R	   R
   R   R   R   t   scipy._lib.sixR   t   numpy.testingR   R   R   R   R   R   R   R   t   scipy.integrateR   R   R   R   R-   RA   RU   RV   Rh   Ri   Rl   Rs   Rt   Rw   R'   R   R0   RŠ   R‹   RŽ   R   R   R‘   t   objectR’   R¡   R¢   R£   R¤   R¥   R§   RÃ   RÎ   RÔ   R+   (    (    (    sC   /tmp/pip-build-7oUkmx/scipy/scipy/integrate/tests/test_integrate.pyt   <module>   sL   L: h(ZC?								:			?	 	