3
Od~                 @   s  d dl mZ d dlmZmZmZmZmZ d dlZd dlm	Z
 d dlZd dlmZ d dlmZmZmZmZmZmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ dd Zdd Z dd Z!dd Z"dd Z#dd Z$dd Z%dd Z&dd Z'dd Z(dd  Z)d!d" Z*d#d$ Z+d%d& Z,d'd( Z-d)d* Z.d+d, Z/d-d. Z0d/d0 Z1ej2j3ej2j4d1d2d3d4gd5d6 Z5d7d8 Z6d9d: Z7d;d< Z8d=d> Z9d?d@ Z:dAdB Z;dCdD Z<dEdF Z=dGdH Z>dIdJ Z?dKdL Z@dMdN ZAdOdP ZBdQdR ZCdS )S    )product)assert_assert_allcloseassert_equalassert_no_warningssuppress_warningsN)raises)group_columns)	solve_ivpRK23RK45DOP853RadauBDFLSODA)OdeSolution)num_jac)ConstantDenseOutput)
coo_matrix
csc_matrixc             C   s,   t j|d  d|d   |d |d  gS )Nr         )nparray)ty r   W/var/www/html/virt/lib64/python3.6/site-packages/scipy/integrate/_ivp/tests/test_ivp.py
fun_linear   s    r   c               C   s   t jddgddggS )Nr   r   )r   r   r   r   r   r   
jac_linear   s    r!   c             C   s8   t jdt jd|   dt jd|   t jd|   fS )Nr      r    )r   vstacksincos)r   r   r   r   
sol_linear   s    r&   c             C   sB   t j|d |  |d |d d|d   d  | |d d   gS )Nr   r   r"   )r   r   )r   r   r   r   r   fun_rational   s    r'   c             C   sB   t j|d |  |d |d d|d   d  | |d d   fS )Nr   r   r"   )r   r#   )r   r   r   r   r   fun_rational_vectorized!   s    r(   c             C   s^   t jdd|  gd|d d  | |d d d   |d d|d   d | |d d   ggS )Nr   r   r"      )r   r   )r   r   r   r   r   jac_rational&   s    
"r+   c             C   s\   t dd|  gd|d d  | |d d d   |d d|d   d | |d d   ggS )Nr   r   r"   r)   r*   )r   )r   r   r   r   r   jac_rational_sparse.   s    
"r,   c             C   s&   t j| | d  d|  | d d  fS )N
   r"   )r   Zasarray)r   r   r   r   sol_rational6   s    r.   c             C   sF  |j d d }d}d}| dkr"dnd}tj|d||d f}d| }tj|d }d|| d d  |d  }|| d d |d  }	d| d }
d| d }d| }d| d }tjd| }|||
 ||   d|  |	|| d||   ||
   |d   |||  ||   |d d d< | ||  ||  |dd d< |S )	Nr   r"   d   r)   r   r      r*   )shaper   hstackarangeempty)r   r   nkcphidjalphabetaZj_2_p1Zj_2_m3Zj_2_m1Zj_2fr   r   r   fun_medazko:   s$    B  r>   c             C   s   g }g }t j| d }|j|dd   |j|dd  d  |j| |j| |j| |j|d  |j|d d  |j|d d d  t j| d d }|j| |j| |j| |j|d  t j|}t j|}tt j|||ffS )Nr"   r   r   r   )r   r3   appendr2   r   	ones_like)r5   colsrowsir   r   r   medazko_sparsityU   s&    







rD   c             C   s   | S )Nr   )r   r   r   r   r   fun_complexu   s    rE   c             C   s   t j|jd  S )Nr   )r   Zeyer1   )r   r   r   r   r   jac_complexy   s    rF   c             C   s   t t| |S )N)r   rF   )r   r   r   r   r   jac_complex_sparse}   s    rG   c             C   s   dt j|   }|jdS )Ng      ?y              ?r   y      ?      ?r   )r   r   )r   expZreshape)r   r   r   r   r   sol_complex   s    rI   c             C   s:   | | ||t j|   }t jj|ddt j|jd  S )Nr   )Zaxis)r   absZlinalgZnormsqrtr1   )r   y_truertolatoler   r   r   compute_error   s    rP   c              C   s@  d} d}ddg}x(t ddgd	d
ddddgddgddggd ttgD ]\}}}}|r\t}nt}t ,}|jtd t|||| ||d||d	}	W d Q R X t	|	j
d |d  t|	jd k t|	jd k t|	j t	|	jd |dkrt|	jdk  nt|	jdk  |dkr(t	|	jd t	|	jd n@td|	j  k o@dk n   td|	j  k o`dk n   t|	j
}
t|	j|
| |}ttj|dk  tj| }t|}|	j|}t||| |}ttj|dk  |d |d  d }t|}|	j|}t||| |}ttj|dk  |dkrDt|	j|	j
|	jddd qDW d S )NgMbP?gư>r   r0   r"   	   FTr   r   r   r   r   r   r   zAThe following arguments have no effect for a chosen solver: `jac`)rM   rN   methoddense_outputjac
vectorizedr   2   (   r-   gV瞯<)rM   rN   gUUUUUU?gqq?)r   r   r   r   r   )r   r+   r,   r(   r'   r   filterUserWarningr
   r   r   r   t_eventsy_eventssuccessstatusnfevnjevnlur.   rP   r   r   alllinspacesolr   )rM   rN   y0rU   rR   t_spanrT   funsupresrL   rO   tcyc_trueycr   r   r   test_integration   sZ    


  



rl   c              C   s  d} d}dg}ddg}t j|d |d }xptddd	d
gd ttgD ]R\}}t *}|jtd tt	|||d| ||d}W d Q R X t
|jd |d  t|jd k t|jd k t|j t
|jd |d	kr|jdk stn|jdk st|d
krt
|jd |jdk s:tn |jdks*t|jdks:tt|j}	t|j|	| |}
t j|
dk shtt|}|j|}t||| |}
t j|
dk sFtqFW d S )NgMbP?gư>g      ?y              ?r   r   r   r   r   r   zAThe following arguments have no effect for a chosen solver: `jac`T)rR   rS   rM   rN   rT   #         r   y      ?      ?)r   rb   r   rF   rG   r   rX   rY   r
   rE   r   r   r   rZ   r[   r\   r]   r^   AssertionErrorr_   r`   rI   rP   r   ra   rc   )rM   rN   rd   re   ri   rR   rT   rg   rh   rL   rO   rj   rk   r   r   r   test_integration_complex   s@    




rq   c              C   s>  d} ddg}t jd|  }d|dd d< t| }xdD  ]}tt||||d}t|jd |d  t|jd k t|j	d k t|j
 t|jd t|jd d
dd t|jd ddd t|jd  ddd t|jd" ddd t|jd$ ddd t|jd& ddd t|jd( ddd t|jd* ddd q8W d S )+N   r      r"   r   r   r   )rR   Zjac_sparsityN   gݨ'.?g{Gz?)rM   O   gMbP?)rN      ghen7?      gՊ.?   ggJ	T>      g`P^?)r   r   r   )rt   r   r   )ru   r   r   )rv   r   r   )rw   r   r   )rx   r   r   )ry   r   r   )rz   r   r   )r{   r   )r   zerosrD   r
   r>   r   r   r   rZ   r[   r\   r]   r   r   )r5   re   rd   sparsityrR   rh   r   r   r   "test_integration_sparse_difference   s*    

r~   c              C   sf  d} d}ddg}ddg}t  }t|}x8tddg||gD ] \}}tt||| ||d|d}t|jd |d  t|jd k t|j	d k t|j
 t|jd t|jd	k  t|jd td|j  k od
k n   t|j}	t|j|	| |}
ttj|
dk  tj| }t|}|j|}t||| |}
ttj|
d
k  t|j|j|jddd q<W d S )NgMbP?gư>r   r"   r   r   T)rM   rN   rR   rS   rT   r/      r-   g+=)rM   rN   )r!   r   r   r
   r   r   r   r   rZ   r[   r\   r]   r^   r_   r`   r&   rP   r   r   ra   rb   rc   r   )rM   rN   rd   re   JZJ_sparserR   rT   rh   rL   rO   ri   rj   rk   r   r   r   test_integration_const_jac  s4     



r   rR   r   r   r   c             C   sV   d}d}dddg}ddg}dd }t |||||| d}|jdk sDt|jd	k sRtd S )
Ngư>g     @r   g    חAc             S   sH   |\}}}d| d| |  d| d| |  d| |  d| | gS )Ng{Gz?g     @g    8|Ag{Gzr   )r   statexr   zr   r   r   fun_robertsonA  s    
z-test_integration_stiff.<locals>.fun_robertson)rM   rN   rR   i  rr   )r
   r^   rp   r_   )rR   rM   rN   rd   Ztspanr   rh   r   r   r   test_integration_stiff9  s    


r   c        	   	   C   s*
  dd } dd }dd }d|_ x.d"D ]$}ttddgd#d$g|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   td|jd d   k odk n   t|jd j	d% t|jd j	d& t
j| |jd d |jd d dstt
j||jd d |jd d dsBtd| _d|_ttddgd'd(g|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   t|jd j	d) t|jd j	d* t
j| |jd d |jd d dstd+| _d,|_ttddgd-d.g|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   t|jd j	d/ t|jd j	d0 t
j||jd d |jd d dstd| _d|_ttddgd1d2g|| ||fdd}t|jd t|jd jd t|jd jd t|jd jd td|jd d   k ovdk n   td|jd d   k odk n   t|jd j	d3 t|jd j	d4 t|jd j	d5 t
j| |jd d |jd d dstt
j||jd d |jd d ds4tttddgd6d7g|| dd}t|jd t|jd jd td|jd d   k odk n   t|jd j	d8 t
j| |jd d |jd d dstt
j|jd |jd9 }t|}|j|}t||dd}tt
j|dk  t
jt|jd d |jd d ddds&tq&W d| _d|_xd:D ]}ttddgd;d<g|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   td|jd d   k o dk n   t|jd j	d= t|jd j	d> t
j| |jd d |jd d dsXtt
j||jd d |jd d dstd?| _d@|_ttddgdAdBg|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   t|jd j	dC t|jd j	dD t
j| |jd d |jd d dsVtd| _d|_ttddgdEdFg|| |fd}t|jd t|jd jd t|jd jd td|jd d   k odk n   t|jd j	dG t|jd j	dH t
j||jd d |jd d ds(td| _d|_ttddgdIdJg|| ||fdd}t|jd t|jd jd t|jd jd t|jd jd td|jd d   k odk n   td|jd d   k odk n   t|jd j	dK t|jd j	dL t|jd j	dM t
j||jd d |jd d d	sJtt
j||jd d |jd d d	svtt
j|jdN |jd }t|}|j|}t||dd}tt
j|dk  t
jt|jd d |jd d ddd	stt
jt|jd d |jd d dddsdtqdW d S )ONc             S   s   |d |d d  S )Nr   r   gffffff?r   )r   r   r   r   r   event_rational_1R  s    z%test_events.<locals>.event_rational_1c             S   s   |d d |d  S )Nr   g333333?r   r   )r   r   r   r   r   event_rational_2U  s    z%test_events.<locals>.event_rational_2c             S   s   | d S )Ng@r   )r   r   r   r   r   event_rational_3X  s    z%test_events.<locals>.event_rational_3Tr   r   r   r   r   r   r      r   r0   r"   rQ   )rR   eventsr   g333333@g@g333333@g@)rR   r   rS   g      @gMbP?gư>)rM   rN   r)   rs   Q   )r   r   r   r   r   r   gUUUUUU?gqq?)r   r"   )r   r"   gUUUUUU?gqq?)r   r"   )r   r   r   gUUUUUU?gqq?)r   )r   r"   gUUUUUU?gqq?)r   r"   )r   )r   r"   gUUUUUU?gqq?)r   r"   r   )r   r   r   r   r   r   gqq?gX<ݚ?)r   r"   )r   r"   r   r   gqq?gX<ݚ?)r   r"   )r   gqq?gX<ݚ?)r   )r   r"   gqq?gX<ݚ?)r   )r   r"   )r   r"   r   )terminalr
   r'   r   r]   rZ   sizer   r[   r1   r   iscloserp   	directionrb   r   r.   rc   rP   ra   Zallclose)	r   r   r   rR   rh   ri   rj   rk   rO   r   r   r   test_eventsQ  s   &&((((((((((
((
2((((((((((((
0r   c              C   s  d} d}ddg}xt tttttgD ]}xddgddgfD ]}tt||| d||d	d
}t|j	d |d  t|j	d |d  t
tjtjtj|j	dk t
|jd k t
|j t|jd t|j	}t|j|| |}t
tj|dk  tj| }t|}	|j|}
t|
|	| |}t
tj|dk  |tk	rTt|j|j	|jddd tt|t|d ||d dd |tk	r>|t|d ||d | |dd}|j }t|jd t
d|k tt|j q>W q$W d S )NgMbP?gư>r   r0   r"   rQ   r   g      ?T)rM   max_steprN   rR   rS   r   gV瞯<)rM   rN   )r   g#B;)rM   rN   r   failedzstep size is lessgUUUUUU?gqq?r   r   g	     ?r   )r   r   r   r   r   r   r
   r'   r   r   r   r   ra   rJ   ZdiffrZ   r\   r]   r.   rP   r   rb   rc   r   assert_raises
ValueErrorstepRuntimeError)rM   rN   rd   rR   re   rh   rL   rO   ri   rj   rk   solvermessager   r   r   test_max_step  sB    
 




r   c              C   s  d} d}ddg}d}xt tttttgD ]j}xbddgddgfD ]L}tt||| d	||d
|d	}t|j	d |d  t|j	d |d  t
|tj|j	d d  t|jd k t|j t|jd t|j	}t|j|| |}ttj|dk  tj| }	t|	}
|j|	}t||
| |}ttj|dk  |tk	rTt
|j|j	|jddd tt|t|d ||d dd tt|t|d ||d dd qBW q(W d S )NgMbP?gư>r   r0   r"   rQ   g?r   g      ?T)rM   r   rN   rR   rS   
first_stepr   gV瞯<)rM   rN   )r   gUUUUUU?gqq?r   r   r   )r   r   r   r   r   r   r
   r'   r   r   r   r   rJ   r   rZ   r\   r]   r.   rP   r   ra   rb   rc   r   r   )rM   rN   rd   r   rR   re   rh   rL   rO   ri   rj   rk   r   r   r   test_first_step*  s:    






r   c           
   C   s  d} d}ddg}xddgddgfD ]}t j|d |d d	}tt||| ||d
}t|j| t|jd k t|j t|j	d t
|j}t|j|| |}tt j|dk  q"W ddddddg}ttddg|| ||d
}t|j| t|jd k t|j t|j	d t
|j}t|j|| |}tt j|dk  dddddddg}ttddg|| ||d
}t|j| t|jd k t|j t|j	d ddddg}ttddg|| ||d
}t|j| t|jd k t|j t|j	d t
|j}t|j|| |}tt j|dk  dddddg}ttddg|| ||d
}t|j| t|jd k t|j t|j	d ddg}ttttddg|| ||d
 d S )NgMbP?gư>r   r0   r"   rQ   r   r   r-   )rM   rN   t_evalg
ףp=
@   r   gQ @g(\@g      ?g?g)\(?r)   ro   gUUUUUU?gqq?)r   rb   r
   r'   r   r   r   rZ   r\   r]   r.   rP   r   ra   r   r   )rM   rN   rd   re   r   rh   rL   rO   r   r   r   test_t_evalQ  sf    







r   c        	   	   C   s   d} d}ddg}ddg}t j|d |d d	}tt||| ||d
}tt||| ||dd}t|j| t|jd k t|j t|j	d t|j|j t|j
|j
 t|jd k t|j t|j	d t|j}t|j
|| |}tt j|dk  d S )NgMbP?gư>r   r0   r"   rQ   r   r   r-   )rM   rN   r   T)rM   rN   r   rS   gUUUUUU?gqq?)r   rb   r
   r'   r   r   r   rZ   r\   r]   r   r.   rP   ra   )	rM   rN   rd   re   r   rh   Zres_drL   rO   r   r   r   test_t_eval_dense_output  s*    



r   c              C   sj   xddD ]\} t dd d	d	gd
dg| dd}t|jd	d
dg t|jd	ddgd
d
d
gdddgg qW d S )Nr   r   r   r   r   r   c             S   s   | S )Nr   )r   r   r   r   r   <lambda>  s    z%test_no_integration.<locals>.<lambda>r)   r"   r0   T)rR   rS   r   ro   )r   r   r   r   r   r   )r
   r   rc   )rR   rc   r   r   r   test_no_integration  s
    

r   c              C   s   xt tttttgD ]} | dd dddgd}|j  t|jd |j	 }t|dddg t|dddgd	d	d	gdddgg | d
d dg t
j}|j  t|jd |j	 }t|dg  t|dddgt
jd qW d S )Nc             S   s   | S )Nr   )r   r   r   r   r   r     s    z+test_no_integration_class.<locals>.<lambda>g        g      $@finishedr   r   r"   r-   c             S   s   | S )Nr   )r   r   r   r   r   r     s    g      Y@r0   )r   r0   )r   r   r   r   r   r   r   r   r]   rS   r   infr4   )rR   r   rc   r   r   r   test_no_integration_class  s    $r   c           	   C   s   dd } t jd}xVdD ]N}tt| dd
g||dd}t|jd
t jd t|jdddgt jd qW xXdD ]P}tt| dt jg||dd}t|jd
t jd t|jdddgt jd qpW d S )Nc             S   s
   t jdS )Nr   )r   )r   r|   )r   r   r   r   r   rf     s    ztest_empty.<locals>.funr   r   r   r   r   r   r   r-   T)rR   rS   r   r"   r0   )r   )r   r   r   r   r   r   )r   )r   r0   )r   r   r   r   r   r   )r   )r   r0   )r   r|   r   r
   r   rc   r   )rf   rd   rR   rc   r   r   r   
test_empty  s    


 

r   c              C   s   t ddtjddg} t| dddg t| dddgdddgdddgg t ddtjg } t| dtjd t| dddgtjd d S )Nr   r   r"   g      ?r0   )r   r0   )r   r   r   r   r4   )rc   r   r   r   test_ConstantDenseOutput  s    $r   c              C   s  d
dg} xt tttttgD ]}|td| tj}t	|j
d t	|jd t	|jtj t	|jd t	|jd t	|j|  t|jd k |tk	rt|jdk t|jdk t	|jd n$t	|jd t	|jd t	|jd tt|j |j }t	|jd t	|d  t	|j
d t	|jtj t	|jd t|jdk ttjtj|j|   t|jdk t|jdk t|jdk t|jdk |j }t|d| ddd	 qW d S )Nr   r0   r"   rQ   r   runningr   gV瞯<)rM   rN   gUUUUUU?gqq?)r   r   r   r   r   r   r'   r   r   r   r5   r]   Zt_boundr   r   r   r   Z	step_sizer^   r_   r`   r   r   rS   r   ra   equalr   )rd   clsr   r   rc   r   r   r   test_classes  s@    
r   c              C   sp  t jdddgtd} t| d | d t jdg}t| d | d t jdg}t| ||g}t|ddg t|ddg t|ddg t|ddg t|ddg t|ddg t|ddddd	d
dddg	t jdddddddddg	g t jdddg} t| d | d t jdg}t| d | d t jdg}t| ||g}t|ddg t|ddg t|ddg t|ddg t|ddg t|d dg t|d!dg t|dd"dd#dddgt jd$dd%dd&dd'gg t jddg} tddt jdg}t| |g}t|ddg t|ddg t|ddg t|dddgt jdddgg d S )(Nr   r"   r   )dtyper   r0   ro   g      ?g      @g      @g      @r-   r)         r   r   r   r   r   r*   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   )r   r   floatr   r   r   )tss1s2rc   sr   r   r   test_OdeSolution  s@     r   c        	      C   s   dd } dd }d}t jdddg}|||}d}| ||j }t| ||||d \}}t||ddd t| |||||\}}t||ddd d S )	Nc             S   sd   t jd|d  d|d  |d   d|d  d|d  |d   d|d d   d|d d  gS )Ng{Gz?r   g     @r   r"   g    8|Ag{Gz)r   r#   )r   r   r   r   r   rf   2  s    .ztest_num_jac.<locals>.func             S   sV   t jdd|d  d|d  gdd|d  d|d   d	|d  gdd|d  dggS )
Ng{Gz?g     @r"   r   g    8Ar   g{Gzg     g     )r   r   )r   r   r   r   r   rT   9  s    $ztest_num_jac.<locals>.jacr   r   gh㈵>)rM   rN   )r   r   ravelr   r   )	rf   rT   r   r   ZJ_true	thresholdr=   ZJ_numfactorr   r   r   test_num_jac1  s    
r   c           	   C   s,  dd } dd }t jjd d}t jj|}||}t|}| d|d d d f j }t| d|j |dd ||fd\}}t| d|j |dd \}	}
t|	|j d	d
d t|
|d	d
d t jj	dd	|d}t| d|j |d|||fd\}}t| d|j |d|\}	}
t|	|j d	d
d t|
|d	d
d d S )Nc             S   sT   |dd  d |d d d  }t j|jd }t j|d| ft jd| |f S )Nr   r0   r"   r   )r   r|   r1   r#   )r   r   rO   r   r   r   r   rf   N  s     z test_num_jac_sparse.<locals>.func             S   sf   t j| | ftd}d|d< d|d< x.td| d D ]}d|||d |d f< q2W d|d	< d|d< |S )N)r   r   r   r"   )r   r   )r   r   r   r   )r   r   r   r*   )r   r*   )r   r|   intrange)r5   ArC   r   r   r   	structureS  s    z&test_num_jac_sparse.<locals>.structurer   rs   g:0yE>)r}   g-q=g+=)rM   rN   )r   )
r   randomseedZrandnr	   r   r   r   Ztoarrayuniform)rf   r   r5   r   r   groupsr=   ZJ_num_sparseZfactor_sparseZJ_num_denseZfactor_denser   r   r   r   test_num_jac_sparseM  s*    



r   c              C   s:  dd } dd }dd }dd }d	d
 }d |_ d|_ d|_d}d}d}d}tj| | d| | tj| |   }	dd!|	g}
d| }t| d|g|
|||gd|||fd|ddd
}|jd }|jd }|jd }t|dtj dtj g t|dtj dtj g t||g tjd|d d}|j	|}t|d tj
|| ddd t|d tj||  ddd t|d dd|	 |	 tj| |  d  ddd |j	|}|j	|}|j	|}t|d tj|d dd t|d tj|d  t|d tj|d  t|d tj|d dd t|d |g d S )"Nc             S   s*   |\}}}| | || || d|  gS )Nr   r   )r   womegar6   zfinalr   r   r   r   r   r   sys3  s    
ztest_args.<locals>.sys3c       	   	   S   s>   |\}}}t jd| dg|ddgdd|dd|   gg}|S )Nr   r   r"   )r   r   )	r   r   r   r6   r   r   r   r   r   r   r   r   sys3_jac  s
    
ztest_args.<locals>.sys3_jacc             S   s   |\}}}|S )Nr   )r   r   r   r6   r   r   r   r   r   r   r   sys3_x0decreasing  s    
z$test_args.<locals>.sys3_x0decreasingc             S   s   |\}}}|S )Nr   )r   r   r   r6   r   r   r   r   r   r   r   sys3_y0increasing  s    
z$test_args.<locals>.sys3_y0increasingc             S   s   |\}}}|| S )Nr   )r   r   r   r6   r   r   r   r   r   r   r   sys3_zfinal  s    
ztest_args.<locals>.sys3_zfinalr   Tr"   r)   r   gGz?r   r   g|=gvIh%<=)r   rS   argsrR   rT   rM   rN   g      ?g      ?g      ?g      ?   g&.>g-q=)rM   rN   gvIh%,=)rN   r   r   )r   r   r   rH   r
   rZ   r   pirb   rc   r$   r%   Z
zeros_liker@   )r   r   r   r   r   r   r6   Ztfinalr   Zz0Zw0tendrc   Z
x0events_tZ
y0events_tZzfinalevents_tr   r   Zx0eventsZy0eventsZzfinaleventsr   r   r   	test_argsz  sP    ,






 *



r   )D	itertoolsr   Znumpy.testingr   r   r   r   r   Zpytestr   r   Znumpyr   Zscipy.optimize._numdiffr	   Zscipy.integrater
   r   r   r   r   r   r   r   Zscipy.integrate._ivp.commonr   Zscipy.integrate._ivp.baser   Zscipy.sparser   r   r   r!   r&   r'   r(   r+   r,   r.   r>   rD   rE   rF   rG   rI   rP   rl   rq   r~   r   markZslowZparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s\   $ D,# .,'>
&+-