o
    iʇ                     @   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 Z1d1d2 Z2ej3j4ej35d3g d4d5d6 Z6d7d8 Z7d9d: Z8d;d< Z9d=d> Z:d?d@ Z;dAdB Z<dCdD Z=dEdF Z>dGdH Z?dIdJ Z@dKdL ZAdMdN ZBdOdP ZCdQdR ZDdSdT ZEdUdV ZFej35d3g dWdXdY ZGdZd[ ZHd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 |S N)np
zeros_likety r   ^/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/test_ivp.pyfun_zero      
r   c                 C   s,   t |d  d|d   |d |d  gS )Nr         r   arrayr   r   r   r   
fun_linear   s   ,r$   c                   C   s   t ddgddggS )Nr!   r"   r   r   r   r   
jac_linear   s   r'   c                 C   s8   t dt d|   dt d|   t d|   fS )Nr&      )r   vstacksincosr   r   r   r   
sol_linear   s   r-   c                 C   sB   t |d |  |d |d d|d   d  | |d d   gS Nr!   r   r(   r"   r   r   r   r   fun_rational       .r/   c                 C   sB   t |d |  |d |d d|d   d  | |d d   fS r.   r   r)   r   r   r   r   fun_rational_vectorized%   r0   r2   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   jac_rational*   s   
"&r6   c                 C   s\   t dd|  gd|d d  | |d d d   |d d|d   d | |d d   ggS r3   )r   r   r   r   r   jac_rational_sparse2   s   
"&r7   c                 C   s&   t | | d  d|  | d d  fS )N
   r(   )r   asarrayr,   r   r   r   sol_rational:   s   &r:   c                 C   sF  |j d d }d}d}| dkrdnd}t|d||d f}d| }t|d }d|| d d  |d  }|| d d |d  }	d| d }
d| d }d| }d| d }td| }|||
 ||   d|  |	|| d||   ||
   |d   |||  ||   |d d d< | ||  ||  |dd d< |S )	Nr   r(   d   r5   r    r4   r!      )shaper   hstackarangeempty)r   r   nkcphidjalphabetaj_2_p1j_2_m3j_2_m1j_2fr   r   r   fun_medazko>   s*   & rN   c                 C   s   g }g }t | d }||dd   ||dd  d  || || || ||d  ||d d  ||d d d  t | d d }|| || || ||d  t |}t |}tt |||ffS )Nr(   r!   r%   )r   r?   appendr>   r   	ones_like)rA   colsrowsir   r   r   medazko_sparsityY   s&   







rT   c                 C      | S r   r   r   r   r   r   fun_complexy   s   rV   c                 C   s   t |jd  S )Nr   )r   eyer=   r   r   r   r   jac_complex}   s   rX   c                 C   s   t t| |S r   )r   rX   r   r   r   r   jac_complex_sparse   s   rY   c                 C   s   dt |   }|dS )N      ?      ?)r!   r%   )r   expreshaper   r   r   r   sol_complex   s   
r]   c                 C   s:   | | ||t |   }t jj|ddt |jd  S )Nr   )axis)r   abslinalgnormsqrtr=   )r   y_truertolatoler   r   r   compute_error   s    rg   c                  C   sB  d} d}ddg}t ddgg ddd	gdd
ggd ttgD ]\}}}}|r(t}nt}t }|td t|||| ||d||d	}	W d    n1 sKw   Y  t	|	j
d |d  t|	jd u  t|	jd u  t|	j t	|	jd |dkrt|	jdk  nt|	jdk  |dv rt	|	jd t	|	jd ntd|	j  k odk n   td|	j  k odk n   t|	j
}
t|	j|
| |}tt|dk  tj| }t|}|	|}t||| |}tt|dk  |d |d  d }t|}|	|}t||| |}tt|dk  |dkrt|	|	j
|	jddd qd S )NMbP?ư>UUUUUU?qq?FTr   r   r   r   r   r   r    	   r!   AThe following arguments have no effect for a chosen solver: `jac`)rd   re   methoddense_outputjac
vectorizedr   r   2   (   )r   r   r   r   r<   r8   r%   r(   r   V瞯<rd   re   )r   r6   r7   r2   r/   r   filterUserWarningr
   r   r   r   t_eventsy_eventssuccessstatusnfevnjevnlur:   rg   r   r   alllinspacesolr   )rd   re   y0rr   ro   t_spanrq   funsupresrc   rf   tcyc_trueycr   r   r   test_integration   sf   






r   c                  C   s  d} d}dg}ddg}t |d |d }tg dd ttgD ]\}}t }|td tt	|||d| ||d	}W d    n1 sCw   Y  t
|jd |d  t|jd u  t|jd u  t|j t
|jd |d
krw|jdk svJ n|jdk s~J |dkrt
|jd |jdk sJ n|jdksJ |jdksJ t|j}	t|j|	| |}
t |
dk sJ t|}||}t||| |}
t |
dk sJ qd S )Nrh   ri   rZ   r   r!   )r   r   r   r   rn   T)ro   rp   rd   re   rq   r   #      r      r    )r   r   r   rX   rY   r   rw   rx   r
   rV   r   r   r   ry   rz   r{   r|   r}   r~   r   r]   rg   r   r   r   )rd   re   r   r   r   ro   rq   r   r   rc   rf   r   r   r   r   r   test_integration_complex   sJ   



r   c                  C   s6  d} ddg}t d|  }d|dd d< t| }dD ]~}tt||||d}t|jd |d  t|jd u  t|j	d u  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 qd S )N   r      r(   r!   )r   r   )ro   jac_sparsity)N   r%   gݨ'.?g{Gz?rd   )O   r%   rh   re   )   r%   ghen7?)   r%   )   r%   gՊ.?)   r%   ggJ	T>)   r%   )   r%   g`P^?)r   zerosrT   r
   rN   r   r   r   ry   rz   r{   r|   r   r   )rA   r   r   sparsityro   r   r   r   r   "test_integration_sparse_difference   s.   

r   c                  C   s^  d} d}ddg}ddg}t  }t|}tddg||gD ]\}}tt||| ||d|d}t|jd |d  t|jd u  t|j	d u  t|j
 t|jd t|jd	k  t|jd td|j  k ogd
k n   t|j}	t|j|	| |}
tt|
dk  tj| }t|}||}t||| |}
tt|
d
k  t||j|jddd qd S )Nrh   ri   r   r(   r   r   T)rd   re   ro   rp   rq   r;      r8   +=rv   )r'   r   r   r
   r$   r   r   r   ry   rz   r{   r|   r}   r~   r   r-   rg   r   r   r   r   r   r   )rd   re   r   r   JJ_sparsero   rq   r   rc   rf   r   r   r   r   r   r   test_integration_const_jac  s8   



r   ro   )r   r   r   c                 C   sT   d}d}g d}ddg}dd }t |||||| d}|jdk s!J |jd	k s(J d S )
Nri   )     @r   r   r   g    חAc                 S   sH   |\}}}d| d| |  d| d| |  d| |  d| | gS )N{Gzr   {Gz?    8|Ar   )r   statexr   zr   r   r   fun_robertsonE  s
   

z-test_integration_stiff.<locals>.fun_robertson)rd   re   ro   i  r   )r
   r}   r~   )ro   rd   re   r   tspanr   r   r   r   r   test_integration_stiff=  s   
r   c            	   	   C   s
  dd } dd }dd }d|_ 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 oJdk n   td|jd d   k o]dk n   t|jd j	d t|jd j	d t
| |jd d |jd d dsJ t
||jd d |jd d dsJ 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d d |jd d dsJ 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 oBdk n   t|jd j	d t|jd j	d t
||jd d |jd d dsnJ d| _d|_ttd	d
gddg|| ||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	d t|jd j	d t|jd j	d t
| |jd d |jd d dsJ t
||jd d |jd d dsJ ttd	d
gddg|| dd}t|jd t|jd jd td|jd d   k oBdk n   t|jd j	d t
| |jd d |jd d dseJ t
|jd |jd }t|}||}t||dd}tt
|d	k  t
jt|jd d |jd d dddsJ qd| _d|_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d d |jd d ds%J t
||jd d |jd d ds;J 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 oxdk n   t|jd j	d t|jd j	d t
| |jd d |jd d dsJ 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d d |jd d dsJ d| _d|_ttd
d	gddg|| ||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 oUdk n   td|jd d   k oidk n   t|jd j	d t|jd j	d t|jd j	d t
||jd d |jd d dsJ t
||jd d |jd d dsJ t
|jd |jd }t|}||}t||dd}tt
|d	k  t
jt|jd d |jd d dddsJ t
jt|jd d |jd d ddds	J qd S )Nc                 S   s   |d |d d  S )Nr   r!   gffffff?r   r   r   r   r   event_rational_1V     z%test_events.<locals>.event_rational_1c                 S   s   |d d |d  S )Nr!   g333333?r   r   r   r   r   r   event_rational_2Y  r   z%test_events.<locals>.event_rational_2c                 S      | d S )Ng@r   r   r   r   r   event_rational_3\     z%test_events.<locals>.event_rational_3Trl   r       rj   rk   )ro   eventsr   r!   g333333@g@g333333@g@)r!   r(   r   r%   )ro   r   rp   r(         @rh   ri   rv   gqq?gX<ݚ?)terminalr
   r/   r   r|   ry   sizer   rz   r=   r   isclose	directionr   r   r:   r   rg   r   allclose)	r   r   r   ro   r   r   r   r   rf   r   r   r   test_eventsU  sL  
&&&
(
((

(

2
((

(
(
((


04r   c                  C   s  d} d}ddg}t tttttfD ]}ddgddgfD ]}tt||| d||d	d
}t|j	d |d  t|j	d |d  t
ttt|j	dk t
|jd u  t
|j t|jd t|j	}t|j|| |}t
t|dk  tj| }t|}	||}
t|
|	| |}t
t|dk  |turt||j	|jddd tt|t|d ||d dd |tur|t|d ||d | |dd}| }t|jd t
d|v  tt|j qqd S )Nrh   ri   rj   rk   r    rm   r!         ?T)rd   max_stepre   ro   rp   r   r%   g	     ?ru   rv   )r   g#B;)rd   re   r   failedzstep size is less)r   r   r   r   r   r   r
   r/   r   r   r   r   r   r_   diffry   r{   r|   r:   rg   r   r   r   r   assert_raises
ValueErrorstepRuntimeError)rd   re   r   ro   r   r   rc   rf   r   r   r   solvermessager   r   r   test_max_step  sN   
 



r   c                  C   s  d} d}ddg}d}t tttttfD ]}ddgddgfD ]}tt||| d	||d
|d	}t|j	d |d  t|j	d |d  t
|t|j	d d  t|jd u  t|j t|jd t|j	}t|j|| |}tt|dk  tj| }	t|	}
||	}t||
| |}tt|dk  |turt
||j	|jddd tt|t|d ||d dd tt|t|d ||d dd qqd S )Nrh   ri   rj   rk   皙?r    rm   r!   r   T)rd   r   re   ro   rp   
first_stepr   r%   ru   rv   )r   )r   r   r   r   r   r   r
   r/   r   r   r   r   r_   r   ry   r{   r|   r:   rg   r   r   r   r   r   r   )rd   re   r   r   ro   r   r   rc   rf   r   r   r   r   r   r   test_first_step.  sD   




r   c               
   C   sl  d} d}ddg}ddgddgfD ]E}t |d |d d	}tt||| ||d
}t|j| t|jd u  t|j t|j	d t
|j}t|j|| |}tt |dk  qg d}ttddg|| ||d
}t|j| t|jd u  t|j t|j	d t
|j}t|j|| |}tt |dk  g d}ttddg|| ||d
}t|j| t|jd u  t|j t|j	d g d}ttddg|| ||d
}t|j| t|jd u  t|j t|j	d t
|j}t|j|| |}tt |dk  g d}ttddg|| ||d
}t|j| t|jd u  t|j t|j	d ddg}ttttddg|| ||d
 d S )Nrh   ri   rj   rk   r    rm   r!   r   r8   rd   re   t_eval)r    
ףp=
@   r   Q @rm   )r    (\@r<         ?皙?)\(?r!   )r   r   r   r   )r   r<   r   r   r   r5   r   )r   r   r
   r/   r   r   r   ry   r{   r|   r:   rg   r   r   r   r   )rd   re   r   r   r   r   rc   rf   r   r   r   test_t_evalU  sr   








r   c            	   	   C   s   d} d}ddg}ddg}t |d |d d	}tt||| ||d
}tt||| ||dd}t|j| t|jd u  t|j t|j	d t|j|j t|j
|j
 t|jd u  t|j t|j	d t|j}t|j
|| |}tt |dk  d S )Nrh   ri   rj   rk   r    rm   r   r!   r8   r   T)rd   re   r   rp   )r   r   r
   r/   r   r   r   ry   r{   r|   r   r:   rg   r   )	rd   re   r   r   r   r   res_drc   rf   r   r   r   test_t_eval_dense_output  s.   


r   c            	      C   s   dd } d| _ d}d}ddg}dd	g}td
d	d}dD ]a}t }|td tt||||||| td	}W d    n1 s?w   Y  |j	sIJ |j
dksPJ |jdksWJ |js]|jr_J t|jdkshJ |jd jdksrJ |jd d dks}J qd S )Nc                 S   r   )Nr   r   r   r   r   r   early_event  r   z,test_t_eval_early_event.<locals>.early_eventTrh   ri   rj   rk   r    rm   r      rl   rn   )rd   re   ro   r   r   rq   zA termination event occurred.r!   r   r   )r   r   r   r   rw   rx   r
   r/   r6   r{   r   r|   r   r   lenry   r   )	r   rd   re   r   r   r   ro   r   r   r   r   r   test_t_eval_early_event  s2   
r   c                  C   s`   dD ]+} t dd ddgddg| dd}t|dddg t|g d	g d
g dg qd S )Nrl   c                 S   rU   r   r   r   r   r   r   <lambda>      z%test_no_integration.<locals>.<lambda>r5   r(   r<   Tro   rp   )r5   r    r   r(   r(   r(   )r<   r<   r<   )r
   r   r   )ro   r   r   r   r   test_no_integration  s   "r   c                  C   s   t tttttfD ]^} | dd dddgd}|  t|jd |	 }t|dddg t|g dg dg dg | d	d dg t
j}|  t|jd |	 }t|d
g  t|g dt
d qd S )Nc                 S   rU   r   r   r   r   r   r   r     r   z+test_no_integration_class.<locals>.<lambda>g        g      $@finished)r   r!   r(   r8   r8   r8   )r   r   r   c                 S   rU   r   r   r   r   r   r   r     r   g      Y@r   r<   )r   r   r   r   r   r   r   r   r|   rp   r   infr@   )ro   r   r   r   r   r   test_no_integration_class  s   r   c               	   C   s   dd } t d}dD ]&}tt| ddg||dd}t|dt d t|g d	t d
 qdD ]'}tt| dt jg||dd}t|dt d t|g d	t d
 q4d S )Nc                 S   s
   t dS )Nr   )r   r   r   r   r   r   r     r   ztest_empty.<locals>.funr   rl   r   r8   Tr   )r!   r(   r<   r   )r   r   r   r
   r   r   r   )r   r   ro   r   r   r   r   
test_empty  s   
r   c                  C   s   t ddtddg} t| dddg t| g dg dg dg t ddtg } t| dtd t| g dtd d S )	Nr   r!   r(   r   )r!   r   r(   )r!   r!   r!   r   r   )r   r   r#   r   r@   )r   r   r   r   test_ConstantDenseOutput  s   r   c                  C   s  ddg} t tttttf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 u  |tur[t|jdk t|jdk t	|jd nt	|jd t	|jd t	|jd tt|j | }t	|jd t	|d  t	|j
d t	|jtj t	|jd t|jdk ttt|j|   t|jdk t|jdk t|jdk t|jdk | }t|d| ddd	 qd S )
Nrj   rk   r    r(   runningr!   r   ru   rv   )r   r   r   r   r   r   r/   r   r   r   rA   r|   t_boundr   r   r   r   	step_sizer}   r~   r   r   r   rp   r   r   equalr   )r   clsr   r   r   r   r   r   test_classes   sB   
r   c                  C   s8  t jg dtd} t| d | d t dg}t| d | d t 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|g d
t g dg t g d} t| d | d t dg}t| d | d t 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|g dt g dg t ddg} tddt dg}t| |g}t|ddg t|ddg t|ddg t|g dt g dg d S )N)r   r(   r    dtyper   r!   r%   r(   r<   r    r   )	r   r   r4   r   g      @g      @r    g      @r(   )	r%   r!   r%   r%   r!   r!   r!   r!   r%   )r8   r5      r8   r5   r   )   r&   r8   r   r   r!   r5   )r%   r!   r%   r!   r%   r!   r%   )r(   r!   r   r   )r   r#   floatr   r   r   )tss1s2r   sr   r   r   test_OdeSolution&  sD   "r   c            	      C   s   dd } dd }d}t g d}|||}d}| || }t| ||||d \}}t||ddd t| |||||\}}t||ddd d S )	Nc                 S   sd   t d|d  d|d  |d   d|d  d|d  |d   d|d d   d|d d  gS )Nr   r   r   r!   r(   r   r   r1   r   r   r   r   r   R  s
   .ztest_num_jac.<locals>.func                 S   sV   t dd|d  d|d  gdd|d  d|d   d|d  gdd|d  dggS )	Nr   r   r(   r!   r   g     g    8Ar   r"   r   r   r   r   rq   Y  s
   $ztest_num_jac.<locals>.jacr!   )r!   r   r   gh㈵>rv   )r   r#   ravelr   r   )	r   rq   r   r   J_true	thresholdrM   J_numfactorr   r   r   test_num_jacQ  s   
r   c               	   C   s,  dd } dd }t jd d}t j|}||}t|}| d|d d d f  }t| d| |dd ||fd\}}t| d| |dd \}	}
t|	| d	d
d t|
|d	d
d t jj	dd	|d}t| d| |d|||fd\}}t| d| |d|\}	}
t|	| d	d
d t|
|d	d
d d S )Nc                 S   sT   |dd  d |d d d  }t |jd }t |d| ft d| |f S )Nr!   r<   r%   r(   )r   r   r=   r)   )r   r   rf   r   r   r   r   r   n  s    $z test_num_jac_sparse.<locals>.func                 S   sb   t j| | ftd}d|d< d|d< td| d D ]}d|||d |d f< qd|d< d|d< |S )Nr   r!   )r   r   r   r!   r(   )r%   r%   )r%   r4   )r   r   intrange)rA   ArS   r   r   r   	structures  s   z&test_num_jac_sparse.<locals>.structurer   r   g:0yE>)r   -q=r   rv   )r   )
r   randomseedrandnr	   r   r   r   toarrayuniform)r   r  rA   r   r  groupsrM   J_num_sparsefactor_sparseJ_num_densefactor_denser   r   r   r   test_num_jac_sparsem  s2   



r  c                  C   s:  dd } dd }dd }dd }d	d
 }d|_ d|_ d|_d}d}d}d}t| | d| | t| |   }	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d|d d}|	|}t|d t
|| ddd t|d t||  ddd t|d dd|	 |	 t| |  d  ddd |	|}|	|}|	|}t|d t|d dd  t|d t|d  t|d t|d  t|d t|d dd  t|d |g d S )!Nc                 S   s*   |\}}}| | || || d|  gS )Nr!   r   r   womegarB   zfinalr   r   r   r   r   r   sys3  s   
 ztest_args.<locals>.sys3c           	   
   S   s>   |\}}}t d| dg|ddgdd|dd|   gg}|S )Nr   r!   r(   r"   )	r   r  r  rB   r  r   r   r   r   r   r   r   sys3_jac  s   
ztest_args.<locals>.sys3_jacc                 S   s   |\}}}|S r   r   r  r   r   r   sys3_x0decreasing     
z$test_args.<locals>.sys3_x0decreasingc                 S   s   |\}}}|S r   r   r  r   r   r   sys3_y0increasing  r  z$test_args.<locals>.sys3_y0increasingc                 S   s   |\}}}|| S r   r   r  r   r   r   sys3_zfinal  s   
ztest_args.<locals>.sys3_zfinalr%   r!   Tr(   r5   r    gGz?r   r   g|=gvIh%<=)r   rp   argsro   rq   rd   re   r   r   g      ?g      ?   g&.>r  rv   gvIh%,=r   )r   r   r   r[   r
   ry   r   pir   r   r*   r+   r   rP   )r  r  r  r  r  r  rB   tfinalr  z0w0tendr   
x0events_t
y0events_tzfinalevents_tr   r  x0eventsy0eventszfinaleventsr   r   r   	test_args  sT   ,





 *


r)  c               	   C   s   dd } t | dddgddgd}ttj|jd d df td }tjt	d	d
) t | dddgddgd}ttj|jd d df td }W d    n1 sXw   Y  ||k scJ d S )Nc                 S   s   |d |d fS )Nr   r!   r   r   r   r   r   rM     s   ztest_array_rtol.<locals>.fr        ?r   r   r%   r!   zAt least one element...matchgؗҜ<)
r
   r   r_   r`   ra   r   r[   pytestwarnsrx   )rM   r   err1err2r   r   r   test_array_rtol  s   *,r1  rl   c                 C   sD   t tddgtd| d}t|j t|jd t|j	ddd d S )Nr   r8   r<   )ro   r*  ru   r   )
r
   r   r   onesr   r{   r   r|   r   r   )ro   resultr   r   r   test_integration_zero_rhs  s   
r4  c                  C   sx   dd } d}t jt|d t| ddgdd W d    n1 s!w   Y  t| ddgd	d}t|jd
 td d S )Nc                 S   s   || S r   r   )r   r   ar   r   r   fun_with_arg  r   z,test_args_single_value.<locals>.fun_with_argz#Supplied 'args' cannot be unpacked.r+  )r   r   r!   r%   )r  )r%   )r   r%   g)r-  r   	TypeErrorr
   r   r   r   r[   )r6  r   r   r   r   r   test_args_single_value  s   r8  )I	itertoolsr   numpy.testingr   r   r   r   r   r-  r   r   numpyr   scipy.optimize._numdiffr	   scipy.integrater
   r   r   r   r   r   r   r   scipy.integrate._ivp.commonr   scipy.integrate._ivp.baser   scipy.sparser   r   r   r$   r'   r-   r/   r2   r6   r7   r:   rN   rT   rV   rX   rY   r]   rg   r   r   r   r   markslowparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r)  r1  r4  r8  r   r   r   r   <module>   sl    $ D,# .,'>
&+-S
