§
    fŠtj÷`  ã                   ó´  — d 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mZmZmZmZ ddlZddlmZ ddlmZmZmZ  G d„ d¦  «        Z G d	„ d
¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z  G d„ d¦  «        Z! G d„ de!¦  «        Z" G d„ de!¦  «        Z# G d„ de!¦  «        Z$ G d„ de!¦  «        Z%e"e#e$e%gZ&d„ Z'd„ Z(d„ Z)d „ Z*d!„ Z+d"„ Z,d#„ Z-d$„ Z. G d%„ d&¦  «        Z/ G d'„ d(e/¦  «        Z0 G d)„ d*e/¦  «        Z1 G d+„ d,e/¦  «        Z2 G d-„ d.e/¦  «        Z3 G d/„ d0e/¦  «        Z4d1„ Z5d2„ Z6d3„ Z7d4„ Z8d5„ Z9dS )6z"
Tests for numerical integration.
é    N)ÚarangeÚzerosÚarrayÚdotÚsqrtÚcosÚsinÚeyeÚpiÚexpÚallclose)Úassert_Úassert_array_almost_equalÚassert_allcloseÚassert_array_equalÚassert_equal)Úraises)ÚodeintÚodeÚcomplex_odec                   ó   — e Zd Zd„ Zd„ ZdS )Ú
TestOdeintc                 ó€  ‡— t          d‰j        d¦  «        }t          ‰j        ‰j        |d¬¦  «        \  }}t          ‰                     ||¦  «        ¦  «         t          ˆfd„‰j        |dd¬¦  «        \  }}t          ‰                     ||¦  «        ¦  «         t          ‰d¦  «        r‘t          ‰j        ‰j        |‰j        d¬¦  «        \  }}t          ‰                     ||¦  «        ¦  «         t          ˆfd	„‰j        |ˆfd
„dd¬¦  «        \  }}t          ‰                     ||¦  «        ¦  «         d S d S )Nç        gš™™™™™©?T©Úfull_outputc                 ó0   •— ‰                      || ¦  «        S ©N©Úf©ÚtÚyÚproblems     €úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/integrate/tests/test_integrate.pyú<lambda>z(TestOdeint._do_problem.<locals>.<lambda>    s   ø€ ¨'¯)ª)°A°q©/¬/€ ó    )r   ÚtfirstÚjac)ÚDfunr   c                 ó0   •— ‰                      || ¦  «        S r   r   r!   s     €r%   r&   z(TestOdeint._do_problem.<locals>.<lambda>+   s   ø€ ¨g¯iªi¸¸1©o¬o€ r'   c                 ó0   •— ‰                      || ¦  «        S r   ©r)   r!   s     €r%   r&   z(TestOdeint._do_problem.<locals>.<lambda>,   s   ø€ °7·;²;¸qÀ!Ñ3DÔ3D€ r'   )r*   r   r(   )	r   Ústop_tr   r    Úz0r   ÚverifyÚhasattrr)   )Úselfr$   r"   ÚzÚinfodicts    `   r%   Ú_do_problemzTestOdeint._do_problem   sd  ø€ Ý�3˜œ¨Ñ-Ô-ˆõ ˜WœY¨¬
°AÀ4ÐHÑHÔH‰ˆˆ8Ý�—’˜q !Ñ$Ô$Ñ%Ô%Ð%õ Ð9Ð9Ð9Ð9¸7¼:ÀqØ)-°dð<ñ <ô <‰ˆˆ8å�—’˜q !Ñ$Ô$Ñ%Ô%Ð%å�7˜EÑ"Ô"ð 
	*å  ¤¨G¬J¸ÀÄØ-1ð3ñ 3ô 3‰KˆAˆxå�G—N’N 1 aÑ(Ô(Ñ)Ô)Ð)õ !Ð!=Ð!=Ð!=Ð!=¸w¼zÈ1Ø&DÐ&DÐ&DÐ&DØ-1¸$ð@ñ @ô @‰KˆAˆxõ �G—N’N 1 aÑ(Ô(Ñ)Ô)Ð)Ð)Ð)ð
	*ð 
	*r'   c                 óh   — t           D ])} |¦   «         }|j        rŒ|                      |¦  «         Œ*d S r   ©ÚPROBLEMSÚcmplxr5   ©r2   Úproblem_clsr$   s      r%   Útest_odeintzTestOdeint.test_odeint0   sJ   € Ý#ð 	&ð 	&ˆKØ!�k‘m”mˆGØŒ}ð ØØ×Ò˜WÑ%Ô%Ð%Ð%ð		&ð 	&r'   N)Ú__name__Ú
__module__Ú__qualname__r5   r<   © r'   r%   r   r      s2   € € € € € ð*ð *ð *ð0&ð &ð &ð &ð &r'   r   c                   ó   — e Zd ZdZdd„ZdS )ÚTestODEClassNÚadamsc                 ó˜  ‡— ˆfd„}d }t          ‰d¦  «        rˆfd„}i }‰j        €‰j        �‰j        |d<   ‰j        |d<   |                      ||¦  «        } |j        |f‰j        dz  ‰j        dz  |dœ|¤Ž |                     ‰j        d¬	¦  «         | 	                    ‰j
        ¦  «        }t          ||j        ¦  «         t          |                     ¦   «         ‰|f¦  «         t          |                     ¦   «         d
k    ‰|f¦  «         t          ‰                     t#          |g¦  «        ‰j
        ¦  «        ‰|f¦  «         d S )Nc                 ó0   •— ‰                      || ¦  «        S r   r   ©r"   r3   r$   s     €r%   r    z#TestODEClass._do_problem.<locals>.f?   s   ø€ Ø—9’9˜Q ‘?”?Ð"r'   r)   c                 ó0   •— ‰                      || ¦  «        S r   r-   rF   s     €r%   r)   z%TestODEClass._do_problem.<locals>.jacC   s   ø€ Ø—{’{ 1 aÑ(Ô(Ð(r'   ÚubandÚlbandé
   )ÚatolÚrtolÚmethodr   )r"   r   )r1   rI   rH   Ú	ode_classÚset_integratorrK   rL   Úset_initial_valuer/   Ú	integrater.   r   r#   r   Ú
successfulÚget_return_coder0   r   )	r2   r$   Ú
integratorrM   r    r)   Úintegrator_paramsÚigr3   s	    `       r%   r5   zTestODEClass._do_problem<   sŠ  ø€ ð	#ð 	#ð 	#ð 	#ð 	#àˆÝ�7˜EÑ"Ô"ð 	)ð)ð )ð )ð )ð )ð ÐØŒ=Ð$¨¬Ð(AØ)0¬Ð˜gÑ&Ø)0¬Ð˜gÑ&à�^Š^˜A˜sÑ#Ô#ˆØˆÔ˜*ð 	/Ø&œ|¨B™Ø&œ|¨B™Ø!'ð	/ð 	/ð .ð		/ð 	/ð 	/ð 	×Ò˜WœZ¨3ÐÑ/Ô/Ð/Ø�LŠL˜œÑ(Ô(ˆå˜1˜bœdÑ#Ô#Ð#Ý�—’‘” '¨6Ð!2Ñ3Ô3Ð3Ý�×"Ò"Ñ$Ô$ qÒ(¨7°FÐ*;Ñ<Ô<Ð<Ý�—’�u a S™zœz¨7¬>Ñ:Ô:¸WÀfÐ<MÑNÔNÐNÐNÐNr'   )rC   )r=   r>   r?   rN   r5   r@   r'   r%   rB   rB   8   s3   € € € € € à€IðOð Oð Oð Oð Oð Or'   rB   c                   ó<   — e Zd ZeZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ ZdS )	ÚTestOdec                 ó¨   — t           D ]I} |¦   «         }|j        rŒ|j        s|                      |dd¦  «         |                      |dd¦  «         ŒJd S ©NÚvoderC   Úbdf)r8   r9   Ústiffr5   r:   s      r%   Ú	test_vodezTestOde.test_vode_   sp   € å#ð 	5ð 	5ˆKØ!�k‘m”mˆGØŒ}ð ØØ”=ð ;Ø× Ò  ¨&°'Ñ:Ô:Ð:Ø×Ò˜W f¨eÑ4Ô4Ð4Ð4ð	5ð 	5r'   c                 ó˜   — t           D ]A} |¦   «         }|j        s|                      |dd¦  «         |                      |dd¦  «         ŒBd S )NÚzvoderC   r\   ©r8   r]   r5   r:   s      r%   Ú
test_zvodezTestOde.test_zvodei   sc   € å#ð 	6ð 	6ˆKØ!�k‘m”mˆGØ”=ð <Ø× Ò  ¨'°7Ñ;Ô;Ð;Ø×Ò˜W g¨uÑ5Ô5Ð5Ð5ð		6ð 	6r'   c                 ój   — t           D ]*} |¦   «         }|j        rŒ|                      |d¦  «         Œ+d S ©NÚlsodar7   r:   s      r%   Ú
test_lsodazTestOde.test_lsodaq   sL   € å#ð 	/ð 	/ˆKØ!�k‘m”mˆGØŒ}ð ØØ×Ò˜W gÑ.Ô.Ð.Ð.ð		/ð 	/r'   c                 óœ   — t           D ]C} |¦   «         }|j        rŒ|j        rŒt          |d¦  «        rŒ-|                      |d¦  «         ŒDd S ©Nr)   Údopri5©r8   r9   r]   r1   r5   r:   s      r%   Útest_dopri5zTestOde.test_dopri5y   ón   € å#ð 	0ð 	0ˆKØ!�k‘m”mˆGØŒ}ð ØØŒ}ð ØÝ�w Ñ&Ô&ð ØØ×Ò˜W hÑ/Ô/Ð/Ð/ð	0ð 	0r'   c                 óœ   — t           D ]C} |¦   «         }|j        rŒ|j        rŒt          |d¦  «        rŒ-|                      |d¦  «         ŒDd S ©Nr)   Údop853rj   r:   s      r%   Útest_dop853zTestOde.test_dop853…   rl   r'   c                 óÐ  — dD ]â}d„ }t          |¦  «                             |¦  «        }|                     dd¦  «         t          |¦  «                             |¦  «        }|                     dd¦  «         |                     |j        dz   ¦  «         |                     |j        dz   ¦  «         |                     |j        dz   ¦  «         |                     ¦   «         sJ ‚Œãd S )N)r[   r`   re   c                 ó   — dS ©Nç      ð?r@   ©r"   r#   s     r%   r    z'TestOde.test_concurrent_fail.<locals>.f–   s   € Ø�sr'   r   çš™™™™™¹?)r   rO   rP   rQ   r"   rR   )r2   Úsolr    ÚrÚr2s        r%   Útest_concurrent_failzTestOde.test_concurrent_fail‘   sì   € ð .ð 	"ð 	"ˆCðð ð õ �A‘”×%Ò% cÑ*Ô*ˆAØ×Ò  1Ñ%Ô%Ð%å�Q‘”×&Ò& sÑ+Ô+ˆBØ× Ò   AÑ&Ô&Ð&à�KŠK˜œ˜c™	Ñ"Ô"Ð"Ø�LŠL˜œ ™Ñ$Ô$Ð$ð �KŠK˜œ˜c™	Ñ"Ô"Ð"Ø—<’<‘>”>Ð!Ð!�>Ð!ð	"ð 	"r'   c                 óš  — d„ }t          d¦  «        D �]6}dD ]þ}|dv r|dk    rŒt          |¦  «                             |¦  «        }|                     dd¦  «         t          |¦  «                             |¦  «        }|                     dd¦  «         |                     |j        dz   ¦  «         |                     |j        dz   ¦  «         |                     |j        dz   ¦  «         t          |j        d¦  «         t          |j        d¦  «         Œÿd	D �].}t          |¦  «                             |¦  «        }|                     dd¦  «         t          |¦  «                             |¦  «        }|                     dd¦  «         |                     |j        dz   ¦  «         |                     |j        dz   ¦  «         |                     |j        dz   ¦  «         |                     |j        dz   ¦  «         |                     |j        dz   ¦  «         t          |j        d
¦  «         t          |j        d¦  «         �Œ0�Œ8d S )Nc                 ó   — dS rs   r@   ru   s     r%   r    z%TestOde.test_concurrent_ok.<locals>.f§   s   € Ø�3r'   é   )r[   r`   re   ri   ro   >   r[   re   r`   é   r   rv   gš™™™™™É?©ri   ro   g333333Ó?)Úranger   rO   rP   rQ   r"   r   r#   )r2   Únum_parallel_threadsr    Úkrw   rx   ry   s          r%   Útest_concurrent_okzTestOde.test_concurrent_ok¦   s:  € ð	ð 	ð 	õ �q‘”ð 	+ñ 	+ˆAØEð +ð +�ØÐ4Ð4Ð4Ð9MÐPQÒ9QÐ9QØÝ˜‘F”F×)Ò)¨#Ñ.Ô.�Ø×#Ò# A qÑ)Ô)Ð)å˜‘V”V×*Ò*¨3Ñ/Ô/�Ø×$Ò$ Q¨Ñ*Ô*Ð*à—’˜AœC #™IÑ&Ô&Ð&Ø—’˜RœT C™ZÑ(Ô(Ð(Ø—’˜RœT C™ZÑ(Ô(Ð(å ¤ SÑ)Ô)Ð)Ý ¤ cÑ*Ô*Ð*Ð*à+ð +ñ +�Ý˜‘F”F×)Ò)¨#Ñ.Ô.�Ø×#Ò# A qÑ)Ô)Ð)å˜‘V”V×*Ò*¨3Ñ/Ô/�Ø×$Ò$ Q¨Ñ*Ô*Ð*à—’˜AœC #™IÑ&Ô&Ð&Ø—’˜AœC #™IÑ&Ô&Ð&Ø—’˜RœT C™ZÑ(Ô(Ð(Ø—’˜AœC #™IÑ&Ô&Ð&Ø—’˜RœT C™ZÑ(Ô(Ð(å ¤ SÑ)Ô)Ð)Ý ¤ cÑ*Ô*Ð*Ñ*ñ+ð#	+ð 	+r'   N)r=   r>   r?   r   rN   r^   rb   rf   rk   rp   rz   rƒ   r@   r'   r%   rX   rX   [   s‚   € € € € € à€Ið5ð 5ð 5ð6ð 6ð 6ð/ð /ð /ð
0ð 
0ð 
0ð
0ð 
0ð 
0ð"ð "ð "ð*#+ð #+ð #+ð #+ð #+r'   rX   c                   ó*   — e Zd ZeZd„ Zd„ Zd„ Zd„ ZdS )ÚTestComplexOdec                 óš   — t           D ]B} |¦   «         }|j        s|                      |dd¦  «         Œ+|                      |dd¦  «         ŒCd S rZ   ra   r:   s      r%   r^   zTestComplexOde.test_vodeÐ   sf   € å#ð 	9ð 	9ˆKØ!�k‘m”mˆGØ”=ð 9Ø× Ò  ¨&°'Ñ:Ô:Ð:Ð:à× Ò  ¨&°%Ñ8Ô8Ð8Ð8ð	9ð 	9r'   c                 óZ   — t           D ]"} |¦   «         }|                      |d¦  «         Œ#d S rd   )r8   r5   r:   s      r%   rf   zTestComplexOde.test_lsodaÙ   sA   € õ $ð 	/ð 	/ˆKØ!�k‘m”mˆGØ×Ò˜W gÑ.Ô.Ð.Ð.ð	/ð 	/r'   c                 óŒ   — t           D ];} |¦   «         }|j        rŒt          |d¦  «        rŒ%|                      |d¦  «         Œ<d S rh   ©r8   r]   r1   r5   r:   s      r%   rk   zTestComplexOde.test_dopri5à   óa   € å#ð 	0ð 	0ˆKØ!�k‘m”mˆGØŒ}ð ØÝ�w Ñ&Ô&ð ØØ×Ò˜W hÑ/Ô/Ð/Ð/ð	0ð 	0r'   c                 óŒ   — t           D ];} |¦   «         }|j        rŒt          |d¦  «        rŒ%|                      |d¦  «         Œ<d S rn   r‰   r:   s      r%   rp   zTestComplexOde.test_dop853ê   rŠ   r'   N)	r=   r>   r?   r   rN   r^   rf   rk   rp   r@   r'   r%   r…   r…   Ì   sU   € € € € € à€Ið9ð 9ð 9ð/ð /ð /ð0ð 0ð 0ð0ð 0ð 0ð 0ð 0r'   r…   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú
TestSoloutc                 ó¨  ‡	‡
— g Š	g Š
d}d}ddg}ˆ	ˆ
fd„}d„ }t          |¦  «                             |¦  «        }|                     |¦  «         |                     ||¦  «         |                     |¦  «        }t          ‰
d         |¦  «         t          ‰
d         |¦  «         t          ‰	d         |¦  «         t          ‰	d         |¦  «         d S )	Nr   ç      $@rt   ç       @c                 ó€   •— ‰                      | ¦  «         ‰                      |                     ¦   «         ¦  «         d S r   ©ÚappendÚcopy©r"   r#   ÚtsÚyss     €€r%   Úsoloutz+TestSolout._run_solout_test.<locals>.soloutÿ   ó2   ø€ Ø�IŠI�a‰LŒLˆLØ�IŠI�a—f’f‘h”hÑÔÐÐÐr'   c                 ó<   — |d         |d         z   |d         dz   gS ©Nr   r~   é   r@   ru   s     r%   Úrhsz(TestSolout._run_solout_test.<locals>.rhs  ó#   € Ø�a”D˜1˜Qœ4‘K ! A¤$¨¡' Ð*Ð*r'   r   éÿÿÿÿ)r   rO   Ú
set_soloutrP   rQ   r   r   ©r2   rT   Út0ÚtendÚy0r˜   r�   rV   Úretr–   r—   s            @@r%   Ú_run_solout_testzTestSolout._run_solout_test÷   sø   øø€ àˆØˆØˆØˆØ�3ˆZˆð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð	+ð 	+ð 	+õ �‰XŒX×$Ò$ ZÑ0Ô0ˆØ
�Š�fÑÔÐØ
×Ò˜R Ñ$Ô$Ð$Ø�lŠl˜4Ñ Ô ˆÝ˜2˜aœ5 "Ñ%Ô%Ð%Ý˜2˜bœ6 3Ñ'Ô'Ð'Ý�R˜”U˜BÑÔÐÝ�R˜”V˜TÑ"Ô"Ð"Ð"Ð"r'   c                 ó:   — dD ]}|                       |¦  «         Œd S ©Nr   ©r¦   ©r2   rT   s     r%   Útest_soloutzTestSolout.test_solout  ó2   € Ø.ð 	.ð 	.ˆJØ×!Ò! *Ñ-Ô-Ð-Ð-ð	.ð 	.r'   c                 ó¨  ‡	‡
— g Š	g Š
d}d}ddg}ˆ	ˆ
fd„}d„ }t          |¦  «                             |¦  «        }|                     ||¦  «         |                     |¦  «         |                     |¦  «        }t          ‰
d         |¦  «         t          ‰
d         |¦  «         t          ‰	d         |¦  «         t          ‰	d         |¦  «         d S )	Nr   r�   rt   r�   c                 ó€   •— ‰                      | ¦  «         ‰                      |                     ¦   «         ¦  «         d S r   r’   r•   s     €€r%   r˜   z9TestSolout._run_solout_after_initial_test.<locals>.solout  r™   r'   c                 ó<   — |d         |d         z   |d         dz   gS r›   r@   ru   s     r%   r�   z6TestSolout._run_solout_after_initial_test.<locals>.rhs  rž   r'   r   rŸ   )r   rO   rP   r    rQ   r   r   r¡   s            @@r%   Ú_run_solout_after_initial_testz)TestSolout._run_solout_after_initial_test  sø   øø€ àˆØˆØˆØˆØ�3ˆZˆð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð	+ð 	+ð 	+õ �‰XŒX×$Ò$ ZÑ0Ô0ˆØ
×Ò˜R Ñ$Ô$Ð$Ø
�Š�fÑÔÐØ�lŠl˜4Ñ Ô ˆÝ˜2˜aœ5 "Ñ%Ô%Ð%Ý˜2˜bœ6 3Ñ'Ô'Ð'Ý�R˜”U˜BÑÔÐÝ�R˜”V˜TÑ"Ô"Ð"Ð"Ð"r'   c                 ó:   — dD ]}|                       |¦  «         Œd S r¨   )r°   rª   s     r%   Útest_solout_after_initialz$TestSolout.test_solout_after_initial+  s2   € Ø.ð 	<ð 	<ˆJØ×/Ò/°
Ñ;Ô;Ð;Ð;ð	<ð 	<r'   c                 óê  ‡‡	‡
— g Š	g Š
d}dŠddg}ˆˆ	ˆ
fd„}d„ }t          |¦  «                             |¦  «        }|                     |¦  «         |                     ||¦  «         |                     ‰¦  «        }t          ‰
d         |¦  «         t          ‰
d         |¦  «         t          ‰	d         |¦  «         t          ‰	d         ‰dz  k    ¦  «         t          ‰	d         ‰k     ¦  «         d S )	Nr   r�   rt   r�   c                 ó–   •— ‰                      | ¦  «         ‰                      |                     ¦   «         ¦  «         | ‰dz  k    rdS d S ©Nr�   rŸ   r’   ©r"   r#   r£   r–   r—   s     €€€r%   r˜   z1TestSolout._run_solout_break_test.<locals>.solout7  óE   ø€ Ø�IŠI�a‰LŒLˆLØ�IŠI�a—f’f‘h”hÑÔÐØ�4˜‘8Š|ˆ|Ø�rð ˆ|r'   c                 ó<   — |d         |d         z   |d         dz   gS r›   r@   ru   s     r%   r�   z.TestSolout._run_solout_break_test.<locals>.rhs=  rž   r'   r   rŸ   )r   rO   r    rP   rQ   r   r   r   ©r2   rT   r¢   r¤   r˜   r�   rV   r¥   r£   r–   r—   s           @@@r%   Ú_run_solout_break_testz!TestSolout._run_solout_break_test/  s  øøø€ àˆØˆØˆØˆØ�3ˆZˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð	+ð 	+ð 	+õ �‰XŒX×$Ò$ ZÑ0Ô0ˆØ
�Š�fÑÔÐØ
×Ò˜R Ñ$Ô$Ð$Ø�lŠl˜4Ñ Ô ˆÝ˜2˜aœ5 "Ñ%Ô%Ð%Ý˜2˜bœ6 3Ñ'Ô'Ð'Ý�R˜”U˜BÑÔÐÝ��2”˜˜c™Ò!Ñ"Ô"Ð"Ý��2”˜’ÑÔÐÐÐr'   c                 ó:   — dD ]}|                       |¦  «         Œd S r¨   ©rº   rª   s     r%   Útest_solout_breakzTestSolout.test_solout_breakJ  ó2   € Ø.ð 	4ð 	4ˆJØ×'Ò'¨
Ñ3Ô3Ð3Ð3ð	4ð 	4r'   N)	r=   r>   r?   r¦   r«   r°   r²   rº   r½   r@   r'   r%   r�   r�   õ   sn   € € € € € ð#ð #ð #ð0.ð .ð .ð#ð #ð #ð0<ð <ð <ðð ð ð64ð 4ð 4ð 4ð 4r'   r�   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestComplexSoloutc                 ó¦  ‡	‡
— g Š	g Š
d}d}dg}ˆ	ˆ
fd„}d„ }t          |¦  «                             |¦  «        }|                     |¦  «         |                     ||¦  «         |                     |¦  «        }t          ‰
d         |¦  «         t          ‰
d         |¦  «         t          ‰	d         |¦  «         t          ‰	d         |¦  «         d S )Nr   ç      4@c                 ó€   •— ‰                      | ¦  «         ‰                      |                     ¦   «         ¦  «         d S r   r’   r•   s     €€r%   r˜   z2TestComplexSolout._run_solout_test.<locals>.soloutY  r™   r'   c                 ó   — d| dz
  dz
  z  gS ©Nrt   r�   ù              ð?r@   ru   s     r%   r�   z/TestComplexSolout._run_solout_test.<locals>.rhs]  ó   € Ø˜˜T™ B™Ñ'Ð(Ð(r'   r   rŸ   )r   rO   r    rP   rQ   r   r   r¡   s            @@r%   r¦   z"TestComplexSolout._run_solout_testQ  sø   øø€ àˆØˆØˆØˆØˆUˆð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð	)ð 	)ð 	)õ ˜ÑÔ×,Ò,¨ZÑ8Ô8ˆØ
�Š�fÑÔÐØ
×Ò˜R Ñ$Ô$Ð$Ø�lŠl˜4Ñ Ô ˆÝ˜2˜aœ5 "Ñ%Ô%Ð%Ý˜2˜bœ6 3Ñ'Ô'Ð'Ý�R˜”U˜BÑÔÐÝ�R˜”V˜TÑ"Ô"Ð"Ð"Ð"r'   c                 ó:   — dD ]}|                       |¦  «         Œd S r¨   r©   rª   s     r%   r«   zTestComplexSolout.test_solouti  r¬   r'   c                 óè  ‡‡	‡
— g Š	g Š
d}dŠdg}ˆˆ	ˆ
fd„}d„ }t          |¦  «                             |¦  «        }|                     |¦  «         |                     ||¦  «         |                     ‰¦  «        }t          ‰
d         |¦  «         t          ‰
d         |¦  «         t          ‰	d         |¦  «         t          ‰	d         ‰dz  k    ¦  «         t          ‰	d         ‰k     ¦  «         d S )Nr   rÂ   c                 ó–   •— ‰                      | ¦  «         ‰                      |                     ¦   «         ¦  «         | ‰dz  k    rdS d S rµ   r’   r¶   s     €€€r%   r˜   z8TestComplexSolout._run_solout_break_test.<locals>.soloutu  r·   r'   c                 ó   — d| dz
  dz
  z  gS rÅ   r@   ru   s     r%   r�   z5TestComplexSolout._run_solout_break_test.<locals>.rhs{  rÇ   r'   r   rŸ   r�   )r   rO   r    rP   rQ   r   r   r   r¹   s           @@@r%   rº   z(TestComplexSolout._run_solout_break_testm  s  øøø€ àˆØˆØˆØˆØˆUˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð	)ð 	)ð 	)õ ˜ÑÔ×,Ò,¨ZÑ8Ô8ˆØ
�Š�fÑÔÐØ
×Ò˜R Ñ$Ô$Ð$Ø�lŠl˜4Ñ Ô ˆÝ˜2˜aœ5 "Ñ%Ô%Ð%Ý˜2˜bœ6 3Ñ'Ô'Ð'Ý�R˜”U˜BÑÔÐÝ��2”˜˜c™Ò!Ñ"Ô"Ð"Ý��2”˜’ÑÔÐÐÐr'   c                 ó:   — dD ]}|                       |¦  «         Œd S r¨   r¼   rª   s     r%   r½   z#TestComplexSolout.test_solout_breakˆ  r¾   r'   N)r=   r>   r?   r¦   r«   rº   r½   r@   r'   r%   rÀ   rÀ   O  sP   € € € € € ð#ð #ð #ð0.ð .ð .ðð ð ð64ð 4ð 4ð 4ð 4r'   rÀ   c                   ó2   — e Zd ZdZdZdZdZg ZdZdZ	dZ
dZdS )ÚODEz
    ODE problem
    Fr~   Ng�íµ ÷Æ°>gñhãˆµøä>)r=   r>   r?   Ú__doc__r]   r9   r.   r/   rI   rH   rK   rL   r@   r'   r%   rÎ   rÎ   ’  sB   € € € € € ðð ð €EØ€EØ€FØ	€Bà€EØ€Eà€DØ€D€D€Dr'   rÎ   c                   óF   — e Zd ZdZdZ eddge¦  «        ZdZdZ	d„ Z
d„ ZdS )	ÚSimpleOscillatorzÇ
    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)
    gq=
×£pñ?rt   rv   g      @c                 ó|   — t          dt          ¦  «        }d|d<   | j         | j        z  |d<   t	          ||¦  «        S )N)rœ   rœ   rt   ©r   r~   )r~   r   )r   Úfloatr‚   Úmr   )r2   r3   r"   Útmps       r%   r    zSimpleOscillator.f¯  s<   € Ý�F�EÑ"Ô"ˆØˆˆD‰	Ø”V�G˜dœfÑ$ˆˆD‰	Ý�3˜‰{Œ{Ðr'   c                 ó  — t          | j        | j        z  ¦  «        }| j        d         t	          ||z  ¦  «        z  | j        d         t          ||z  ¦  «        z  |z  z   }t          ||d d …df         | j        | j        ¬¦  «        S )Nr   r~   ©rK   rL   )	r   r‚   rÕ   r/   r   r	   r   rK   rL   )r2   Úzsr"   ÚomegaÚus        r%   r0   zSimpleOscillator.verifyµ  sw   € Ý�T”V˜dœf‘_Ñ%Ô%ˆØŒG�AŒJ•s˜5 ™7‘|”|Ñ# d¤g¨a¤jµ°U¸1±W±´Ñ&=¸eÑ&CÑCˆÝ˜˜2˜a˜a˜a ˜dœ8¨$¬)¸$¼)ÐDÑDÔDÐDr'   N)r=   r>   r?   rÏ   r.   r   rÔ   r/   r‚   rÕ   r    r0   r@   r'   r%   rÑ   rÑ   ¢  sg   € € € € € ðð ð €FØ	ˆ��Sˆz˜5Ñ	!Ô	!€Bà€AØ€Aðð ð ðEð Eð Eð Eð Er'   rÑ   c                   óL   — e Zd ZdZdez  Z eg d¢¦  «        ZdZd„ Z	d„ Z
d„ ZdS )	Ú
ComplexExpzThe equation :lm:`\dot u = i u`g®Gáz®ó?)rÆ   y               @y              @y              @y              @Tc                 ó   — d|z  S )NrÆ   r@   ©r2   r3   r"   s      r%   r    zComplexExp.fÁ  s   € Ø�!‰tˆr'   c                 ó&   — dt          d¦  «        z  S )NrÆ   é   )r
   rß   s      r%   r)   zComplexExp.jacÄ  s   € Ø•#�a‘&”&‰yÐr'   c                 óp   — | j         t          d|z  ¦  «        z  }t          ||| j        | j        ¬¦  «        S )NrÆ   rØ   )r/   r   r   rK   rL   ©r2   rÙ   r"   rÛ   s       r%   r0   zComplexExp.verifyÇ  s3   € ØŒG•c˜"˜Q™$‘i”iÑˆÝ˜˜2 D¤I°D´IÐ>Ñ>Ô>Ð>r'   N)r=   r>   r?   rÏ   r   r.   r   r/   r9   r    r)   r0   r@   r'   r%   rÝ   rÝ   »  sk   € € € € € Ø*Ð*Ø�"‰W€FØ	ˆÐ!Ð!Ð!Ñ	"Ô	"€BØ€Eðð ð ðð ð ð?ð ?ð ?ð ?ð ?r'   rÝ   c                   ó,   — e Zd ZdZdZdgZdZd„ Zd„ ZdS )ÚPiz'Integrate 1/(t + 1j) from t=-10 to t=10é   r   Tc                 ó4   — t          d|dz
  dz   z  g¦  «        S )Nrt   rJ   rÆ   ©r   rß   s      r%   r    zPi.fÒ  s    € Ý�b˜!˜b™& 2™+Ñ&Ð'Ñ(Ô(Ð(r'   c                 ó~   — dt          j        d¦  «        z  }t          ||dd d …f         | j        | j        ¬¦  «        S )Ny       €       ÀrJ   rŸ   rØ   )ÚnpÚarctanr   rK   rL   rã   s       r%   r0   z	Pi.verifyÕ  s;   € Ø•"”)˜B‘-”-ÑˆÝ˜˜2˜b ! ! !˜eœ9¨4¬9¸4¼9ÐEÑEÔEÐEr'   N)	r=   r>   r?   rÏ   r.   r/   r9   r    r0   r@   r'   r%   rå   rå   Ì  sN   € € € € € Ø2Ð2Ø€FØ
ˆ€BØ€Eð)ð )ð )ðFð Fð Fð Fð Fr'   rå   c                   óD   — e Zd ZdZdZdZg d¢ZdZdZg d¢Z	d„ Z
d	„ Zd
„ ZdS )ÚCoupledDecayze
    3 coupled decays suited for banded treatment
    (banded mode makes it necessary when N>>3)
    Tç      à?)g      @g      @g      *@r~   r   )gÃõ(\�ÂÅ?gq=
×£pÍ?g�Âõ(\�Ò?c                 óæ   — | j         }t          j        |d          |d         z  |d          |d         z  |d         |d         z  z   |d          |d         z  |d         |d         z  z   g¦  «        S r›   )Úlmbdrê   r   )r2   r3   r"   rð   s       r%   r    zCoupledDecay.fè  sv   € ØŒyˆÝŒx˜$˜qœ'˜ ! A¤$™Ø˜qœ'˜ ! A¤$™¨¨a¬°°1´©Ñ5Ø˜qœ'˜ ! A¤$™¨¨a¬°°1´©Ñ5ð7ñ 8ô 8ð 	8r'   c                 ó8  ‡ ‡— ‰ j         }t          j        ‰ j        ‰ j        z   dz   dfd¬¦  «        Šˆˆ fd„} |dd|d          ¦  «          |dd|d         ¦  «          |dd|d          ¦  «          |dd|d         ¦  «          |dd|d          ¦  «         ‰S )Nr~   r}   ÚF©Úorderc                 ó,   •— |‰‰j         | z   |z
  |f<   d S r   )rH   )ÚriÚciÚvalÚjr2   s      €€r%   Úset_jzCoupledDecay.jac.<locals>.set_jþ  s#   ø€ Ø*-ˆAˆdŒj˜2‰o Ñ" BÐ&Ñ'Ð'Ð'r'   r   rœ   )rð   rê   r   rI   rH   )r2   r3   r"   rð   rú   rù   s   `    @r%   r)   zCoupledDecay.jacî  sÕ   øø€ ð ŒyˆÝŒH�d”j 4¤:Ñ-°Ñ1°1Ð5¸SÐAÑAÔAˆð	.ð 	.ð 	.ð 	.ð 	.ð 	.àˆˆa��T˜!”W�HÑÔÐØˆˆa��D˜”GÑÔÐØˆˆa��T˜!”W�HÑÔÐØˆˆa��D˜”GÑÔÐØˆˆa��T˜!”W�HÑÔÐØˆr'   c           
      ó$  — t          j        | j        ¦  «        }|d         |d         z
  }|d         |d         z
  }|d         |d         z
  }t          j        |d          |z  ¦  «        }t          j        |d          |z  ¦  «        }t          j        |d          |z  ¦  «        }	t          j        | j        d         |z  | j        d         |z  | j        d         |d         z  |z  ||z
  z  z   | j        d         |	z  | j        d         |d         z  |z  ||	z
  z  z   |d         |d         z  | j        d         z  |z  d|z  ||	z
  z  d|z  ||	z
  z  z
  z  z   f¦  «                             ¦   «         }
t          |
|| j        | j	        ¬¦  «        S )Nr~   r   rœ   rØ   )
rê   r   rð   r   Úvstackr/   Ú	transposer   rK   rL   )r2   rÙ   r"   rð   Úd10Úd21Úd20Úe0Úe1Úe2rÛ   s              r%   r0   zCoupledDecay.verify  s�  € åŒx˜œ	Ñ"Ô"ˆØ�1Œg˜˜QœÑˆØ�1Œg˜˜QœÑˆØ�1Œg˜˜QœÑˆÝŒV�T˜!”W�H˜q‘LÑ!Ô!ˆÝŒV�T˜!”W�H˜q‘LÑ!Ô!ˆÝŒV�T˜!”W�H˜q‘LÑ!Ô!ˆÝŒIØŒG�AŒJ˜‰OØŒG�AŒJ˜‰O˜dœg aœj¨4°¬7Ñ2°SÑ8¸BÀ¹GÑDÑDØŒG�AŒJ˜‰O˜dœg aœj¨4°¬7Ñ2°SÑ8¸BÀ¹GÑDÑDØ�ŒG�d˜1”gÑ ¤¨¤
Ñ*¨SÑ0Ø�‰W˜˜R™Ñ  1 s¡7¨b°2©gÑ#6Ñ6ñ8ñ8ð9ñ :ô :÷
 ;Dº)¹+¼+ð 	
õ ˜˜2 D¤I°D´IÐ>Ñ>Ô>Ð>r'   N)r=   r>   r?   rÏ   r]   r.   r/   rI   rH   rð   r    r)   r0   r@   r'   r%   rí   rí   Ú  sw   € € € € € ðð ð
 €EØ€FØ	Ð	Ð	€BØ€EØ€EàÐÐ€Dð8ð 8ð 8ðð ð ð2?ð ?ð ?ð ?ð ?r'   rí   c                 ó(   — |d         |d          g}|S ©Nr~   r   r@   )r"   ÚxÚdxdts      r%   r    r      s   € ØˆaŒD�1�Q”4�%ˆ=€DØ€Kr'   c                 ó0   — t          ddgddgg¦  «        }|S )Nr   rt   ç      ð¿rè   )r"   r  rù   s      r%   r)   r)   #  s(   € Ý��SˆzØ�cˆ{ðñ 	ô 	€Aà€Hr'   c                 ó4   — ||d         z  | |d         z  g}|S r  r@   ©r"   r  rÚ   r  s       r%   Úf1r  )  s#   € Ø�!�A”$‰J˜˜˜q œt™Ð$€DØ€Kr'   c                 ó2   — t          d|g| dgg¦  «        }|S ©Nr   rè   ©r"   r  rÚ   rù   s       r%   Újac1r  .  s*   € Ý��Uˆ|Ø�˜ˆ}ðñ 	ô 	€Aà€Hr'   c                 ó4   — ||d         z  | |d         z  g}|S r  r@   )r"   r  Úomega1Úomega2r  s        r%   Úf2r  4  s#   € Ø�1�Q”4‰K˜&˜  1¤™Ð&€DØ€Kr'   c                 ó2   — t          d|g| dgg¦  «        }|S r  rè   )r"   r  r  r  rù   s        r%   Újac2r  9  s*   € Ý��Vˆ}Ø�˜ˆ~ðñ 	 ô 	 €Aà€Hr'   c                 óL   — |d         |d         z  |d          |d         z  g}|S )Nr   r~   r@   r  s       r%   Úfvr  ?  s+   € Ø�!ŒH�Q�q”T‰M˜E !œH˜9 Q q¤T™>Ð*€DØ€Kr'   c                 óJ   — t          d|d         g|d          dgg¦  «        }|S )Nr   r   r~   rè   r  s       r%   Újacvr  D  s3   € Ý��U˜1”XˆØ�q”�	˜3Ðð!ñ 	"ô 	"€Aà€Hr'   c                   óD   — e Zd ZdZdZdZd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )ÚODECheckParameterUsez=Call an ode-class solver with several cases of parameter use.Ú Fc                 ó¶   — t          ||¦  «        }| j        r$|                     | j        dd| j        ¬¦  «         n|                     | j        dd¬¦  «         |S )Ng•Ö&è.>gH¯¼šò×z>)rK   rL   Úwith_jacobianrØ   )r   Úsolver_uses_jacrO   Úsolver_name)r2   r    r)   Úsolvers       r%   Ú_get_solverz ODECheckParameterUse._get_solverS  su   € Ý�Q˜‘”ˆØÔð 	JØ×!Ò! $Ô"2¸ÀDØ04Ô0Dð "ñ Fô Fð Fð Fð ×!Ò! $Ô"2¸ÀDÐ!ÑIÔIÐIØˆr'   c                 óœ   — ddg}|                      |d¦  «         |                     t          ¦  «         t          |j        ddg¦  «         d S )Nrt   r   r	  )rP   rQ   r   r   r#   ©r2   r"  Úics      r%   Ú_check_solverz"ODECheckParameterUse._check_solver_  sQ   € Ø�3ˆZˆØ× Ò   SÑ)Ô)Ð)Ø×Ò�ÑÔÐÝ! &¤(¨T°3¨KÑ8Ô8Ð8Ð8Ð8r'   c                 óp   — |                       t          t          ¦  «        }|                      |¦  «         d S r   )r#  r    r)   r'  )r2   r"  s     r%   Útest_no_paramsz#ODECheckParameterUse.test_no_paramse  s1   € Ø×!Ò!¥!¥SÑ)Ô)ˆØ×Ò˜6Ñ"Ô"Ð"Ð"Ð"r'   c                 óÖ   — |                       t          t          ¦  «        }d}|                     |¦  «         | j        r|                     |¦  «         |                      |¦  «         d S rs   )r#  r  r  Úset_f_paramsr   Úset_jac_paramsr'  ©r2   r"  rÚ   s      r%   Útest_one_scalar_paramz*ODECheckParameterUse.test_one_scalar_parami  si   € Ø×!Ò!¥"¥dÑ+Ô+ˆØˆØ×Ò˜EÑ"Ô"Ð"ØÔð 	)Ø×!Ò! %Ñ(Ô(Ð(Ø×Ò˜6Ñ"Ô"Ð"Ð"Ð"r'   c                 óÞ   — |                       t          t          ¦  «        }d}d}|                     ||¦  «         | j        r|                     ||¦  «         |                      |¦  «         d S rs   )r#  r  r  r+  r   r,  r'  )r2   r"  r  r  s       r%   Útest_two_scalar_paramsz+ODECheckParameterUse.test_two_scalar_paramsq  sr   € Ø×!Ò!¥"¥dÑ+Ô+ˆØˆØˆØ×Ò˜F FÑ+Ô+Ð+ØÔð 	2Ø×!Ò! &¨&Ñ1Ô1Ð1Ø×Ò˜6Ñ"Ô"Ð"Ð"Ð"r'   c                 óÚ   — |                       t          t          ¦  «        }ddg}|                     |¦  «         | j        r|                     |¦  «         |                      |¦  «         d S rs   )r#  r  r  r+  r   r,  r'  r-  s      r%   Útest_vector_paramz&ODECheckParameterUse.test_vector_paramz  sm   € Ø×!Ò!¥"¥dÑ+Ô+ˆØ�c�
ˆØ×Ò˜EÑ"Ô"Ð"ØÔð 	)Ø×!Ò! %Ñ(Ô(Ð(Ø×Ò˜6Ñ"Ô"Ð"Ð"Ð"r'   c                 óJ  — |                       t          t          ¦  «        }|                     | j        d¬¦  «         ddg}|                     |d¦  «         t          j        t          ¦  «        5  | 	                    t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr~   )Únstepsrt   r   )r#  r    r)   rO   r!  rP   ÚpytestÚwarnsÚUserWarningrQ   r   r%  s      r%   Útest_warns_on_failurez*ODECheckParameterUse.test_warns_on_failure‚  sÚ   € à×!Ò!¥!¥SÑ)Ô)ˆØ×Ò˜dÔ.°qÐÑ9Ô9Ð9Ø�3ˆZˆØ× Ò   SÑ)Ô)Ð)ÝŒ\�+Ñ&Ô&ð 	!ð 	!Ø×Ò�RÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   Á0BÂBÂBN)r=   r>   r?   rÏ   r!  r   r#  r'  r)  r.  r0  r2  r8  r@   r'   r%   r  r  J  s�   € € € € € ØGÐGð
 €KØ€Oð
ð 
ð 
ð9ð 9ð 9ð#ð #ð #ð#ð #ð #ð#ð #ð #ð#ð #ð #ð!ð !ð !ð !ð !r'   r  c                   ó   — e Zd ZdZdZdS )ÚTestDOPRI5CheckParameterUseri   FN©r=   r>   r?   r!  r   r@   r'   r%   r:  r:  Œ  ó   € € € € € Ø€KØ€O€O€Or'   r:  c                   ó   — e Zd ZdZdZdS )ÚTestDOP853CheckParameterUsero   FNr;  r@   r'   r%   r>  r>  ‘  r<  r'   r>  c                   ó   — e Zd ZdZdZdS )ÚTestVODECheckParameterUser[   TNr;  r@   r'   r%   r@  r@  –  s   € € € € € Ø€KØ€O€O€Or'   r@  c                   ó   — e Zd ZdZdZdS )ÚTestZVODECheckParameterUser`   TNr;  r@   r'   r%   rB  rB  ›  ó   € € € € € Ø€KØ€O€O€Or'   rB  c                   ó   — e Zd ZdZdZdS )ÚTestLSODACheckParameterUsere   TNr;  r@   r'   r%   rE  rE     rC  r'   rE  c                  ó†   — d} dg}t          d„ | |d¬¦  «        \  }}t          |t          j        | gg¦  «        ¦  «         d S )Nr~   r   c                 ó   — |  S r   r@   )r#   r"   s     r%   r&   z*test_odeint_trivial_time.<locals>.<lambda>ª  s   €  1 "€ r'   Tr   )r   r   rê   r   )r¤   r"   r#   Úinfos       r%   Útest_odeint_trivial_timerI  ¥  sP   € ð 
€BØ	
ˆ€AÝ�_�_ b¨!¸Ð>Ñ>Ô>�G€A€tÝ�q�"œ( R D 6Ñ*Ô*Ñ+Ô+Ð+Ð+Ð+r'   c                  óî  ‡‡‡— d„ Šd„ Šd„ } d„ Šˆfd„}t          g d¢g d¢g d¢g d	¢g¦  «        }t          j        d
¦  «        }t          j         g d¢¦  «        }t          ‰|||fdddd‰¬¦	  «	        \  }}t          ‰|||fdddd| d¬¦
  «
        \  }}t          ‰|||fdddd‰dd¬¦  «        \  }	}
t          ‰|||fdddd|ddd¬¦  «        \  }}t	          ||d¬¦  «         t	          ||	dd¬¦  «         t	          |	|d¬¦  «         t          |d         |d         ¦  «         t          |
d         |d         ¦  «         t          ˆfd„|||fddddˆfd„d¬¦
  «
        \  }}t	          ||dd ¬!¦  «         d S )"Nc                 ó,   — |                      | ¦  «        S r   )r   ©r#   r"   Úcs      r%   Úfuncz)test_odeint_banded_jacobian.<locals>.func±  s   € Ø�uŠu�Q‰xŒxˆr'   c                 ó   — |S r   r@   rL  s      r%   r)   z(test_odeint_banded_jacobian.<locals>.jac´  s   € Øˆr'   c                 ó8   — |j                              d¬¦  «        S ©NÚCró   ©ÚTr”   rL  s      r%   Újac_transposez2test_odeint_banded_jacobian.<locals>.jac_transpose·  s   € ØŒs�xŠx˜cˆxÑ"Ô"Ð"r'   c           
      ó:  — 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 )Nr   r~   rŸ   éþÿÿÿ)rê   rü   Úr_Údiag)r#   r"   rM  r)   s       r%   Ú	bjac_rowsz.test_odeint_banded_jacobian.<locals>.bjac_rowsº  sv   € ÝŒi�œ˜q¥"¤'¨!¨Q¡-¤-Ð/Ô0ÝœG A™JœJÝœE¥"¤'¨!¨R¡.¤.°!Ð"3Ô4ÝœE¥"¤'¨!¨R¡.¤.°!°QÐ"6Ô7ð9ñ :ô :ˆð ˆ
r'   c                 óP   •—  ‰| ||¦  «        j                              d¬¦  «        S rQ  rS  )r#   r"   rM  rZ  s      €r%   Ú	bjac_colsz.test_odeint_banded_jacobian.<locals>.bjac_colsÁ  s+   ø€ Øˆy˜˜A˜qÑ!Ô!Ô#×(Ò(¨sÐ(Ñ3Ô3Ð3r'   )i3ÿÿÿç{®Gáz„?r   r   )rv   g      Àg{®Gáz”?r   )gü©ñÒMbP?r]  g       Àr]  )r   r   rv   r	  é   )r   rá   rJ   éd   Tg‚vIhÂ%<=g•dyáý¥=i'  )Úargsr   rK   rL   Úmxstepr*   )r`  r   rK   rL   ra  r*   Ú	col_derivrœ   r~   )r`  r   rK   rL   ra  r*   ÚmlÚmu)	r`  r   rK   rL   ra  r*   rc  rd  rb  zsol1 != sol2)Úerr_msgçê-�™—q=zsol1 != sol3)rK   re  zsol3 != sol4Únjec                 ó   •—  ‰|| |¦  «        S r   r@   )r"   r#   rM  rN  s      €r%   r&   z-test_odeint_banded_jacobian.<locals>.<lambda>í  s   ø€ ¨T¨T°!°Q¸©]¬]€ r'   c                 ó   •—  ‰|| |¦  «        S r   r@   )r"   r#   rM  r)   s      €r%   r&   z-test_odeint_banded_jacobian.<locals>.<lambda>ð  s   ø€ °#°#°a¸¸A±,´,€ r'   )r`  r   rK   rL   ra  r*   r(   zsol1 != sol1ty)rL   re  )r   rê   Úonesr   r   r   )rU  r\  rM  r¤   r"   Úsol1Úinfo1Úsol2Úinfo2Úsol3Úinfo3Úsol4Úinfo4Úsol1tyÚinfo1tyrZ  rN  r)   s                  @@@r%   Útest_odeint_banded_jacobianru  ®  sc  øøø€ ðð ð ðð ð ð#ð #ð #ðð ð ð4ð 4ð 4ð 4ð 4õ 	Ð&Ð&Ð&Ø&Ð&Ð&Ø'Ð'Ð'Ø&Ð&Ð&ð(ñ 	)ô 	)€Aõ
 
Œ�‰Œ€BÝ
Œ���Ñ!Ô!€Aõ ˜˜r 1¨A¨4¸TØ#¨%¸Ø!ð#ñ #ô #�K€Dˆ%õ
 ˜˜r 1¨A¨4¸TØ#¨%¸Ø+°tð=ñ =ô =�K€Dˆ%õ
 ˜˜r 1¨A¨4¸TØ#¨%¸Ø'¨A°!ð5ñ 5ô 5�K€Dˆ%õ
 ˜˜r 1¨A¨4¸TØ#¨%¸Ø'¨A°!¸tðEñ Eô E�K€Dˆ%õ �D˜$¨Ð7Ñ7Ô7Ð7Ý�D˜$ U°NÐCÑCÔCÐCÝ�D˜$¨Ð7Ñ7Ô7Ð7õ �u˜U”| U¨5¤\Ñ2Ô2Ð2Ý�u˜U”| U¨5¤\Ñ2Ô2Ð2õ Ð:Ð:Ð:Ð:¸BÀÈÈØ)-°EÀØ$)Ø">Ð">Ð">Ð">ÀtðMñ Mô M�O€FˆGõ �D˜& uÐ6FÐGÑGÔGÐGÐGÐGr'   c                  óv  — 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|¬¦  «         t          t          t          | dd	d
g|¬¦  «         t          t          t          |ddgd	d
g|¬¦  «         d S )Nc                 ó   — d| z  S ©Néœÿÿÿr@   ©r  r"   s     r%   Úsys1dz!test_odeint_errors.<locals>.sys1dø  ó   € Ø�A‰vˆr'   c                 ó   — ddz  S ©Nrt   r   r@   rz  s     r%   Úbad1z test_odeint_errors.<locals>.bad1û  ó   € Ø�1‰uˆr'   c                 ó   — dS ©NÚfoor@   rz  s     r%   Úbad2z test_odeint_errors.<locals>.bad2þ  s   € Øˆur'   c                 ó   — ddz  S r~  r@   rz  s     r%   Úbad_jac1z$test_odeint_errors.<locals>.bad_jac1  r€  r'   c                 ó
   — dggS r‚  r@   rz  s     r%   Úbad_jac2z$test_odeint_errors.<locals>.bad_jac2  s   € Ø�ˆyÐr'   c                 ó.   — d| d         z  d| d         z  gS )Nry  r   çš™™™™™¹¿r~   r@   rz  s     r%   Úsys2dz!test_odeint_errors.<locals>.sys2d  s   € Ø�Q�q”T‘	˜4  !¤™9Ð%Ð%r'   c                 ó   — ddz  dgddggS )Nrt   r   rŠ  r@   rz  s     r%   Úsys2d_bad_jacz)test_odeint_errors.<locals>.sys2d_bad_jac
  s   € Ø�Q‘˜�
˜Q ˜IÐ&Ð&r'   rt   r   r~   ©r*   )Úassert_raisesÚZeroDivisionErrorr   Ú
ValueError)r{  r  r„  r†  rˆ  r‹  r�  s          r%   Útest_odeint_errorsr’  ÷  s  € ðð ð ðð ð ðð ð ðð ð ðð ð ð&ð &ð &ð'ð 'ð 'õ Õ#¥V¨T°3¸¸A¸Ñ?Ô?Ð?Ý•*�f d¨C°!°Q°Ñ8Ô8Ð8åÕ#¥V¨U°C¸!¸Q¸ÀhÐOÑOÔOÐOÝ•*�f e¨S°1°a°&¸xÐHÑHÔHÐHåÕ#¥V¨U°S¸#°JÀÀAÀØ$ð&ñ &ô &ð &ð &ð &r'   c                  ó6  — 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 S )Nc                 ó
   — ddgS )Nr~   rŸ   r@   rz  s     r%   Úbadrhsz&test_odeint_bad_shapes.<locals>.badrhs  s   € Ø�2ˆwˆr'   c                 ó   — d| z  S rx  r@   rz  s     r%   Úsys1z$test_odeint_bad_shapes.<locals>.sys1  r|  r'   c                 ó   — g d¢gS )N)r   r   r   r@   rz  s     r%   Úbadjacz&test_odeint_bad_shapes.<locals>.badjac   s   € Ø�	�	ˆ{Ðr'   r   r~   rœ   r}   r�   rJ   rŽ  )r�  r‘  r   ÚRuntimeError)r•  r—  r™  Úbad_y0Úbad_ts        r%   Útest_odeint_bad_shapesr�    sÐ   € ðð ð ðð ð ðð ð ð �!ˆf�q˜!�fÐ€FÝ•*�f d¨F°Q¸°FÑ;Ô;Ð;ð �ˆV�a˜�VÐ€EÝ•*�f d¨T¨F°EÑ:Ô:Ð:õ •,¥¨°°Q¸°FÑ;Ô;Ð;õ •,¥¨¨r°2¨h¸¸A¸ÀVÐLÑLÔLÐLÐLÐLr'   c                  óÚ  — d„ } t          j        d¦  «        }t          | dg|¦  «        }t          |t          j        t          |¦  «        df¦  «        ¦  «         dt          j        d¦  «        z  }dgdz  |d|z  d|z  d	|z  gz   }t          | ddg|d
d
¬¦  «        }t          j        ddggdz  ddgddgddgddggz   ¦  «        }t          ||¦  «         t          | dgg ¦  «        }t          |t          j        g t           j	        ¬¦  «         
                    d¦  «        ¦  «         t          t          t          | dgg d¢¦  «         t          t          t          | g d¢g d¢¦  «         dS )zRegression test for gh-8217.c                 ó   — d| z  S )Ng      Ð¿r@   rz  s     r%   rN  z$test_repeated_t_values.<locals>.func5  s   € Ø�Q‰wˆr'   rJ   rt   r~   r^  rœ   r   é	   r}   rf  )rL   rK   r�   rî   g      Ð?g      À?)ÚdtyperÓ   )r   r~   rî   r   )r~   rœ   r}   )r   rŸ   rW  r}   N)rê   r   r   r   rj  ÚlenÚlogr   r   Úfloat64Úreshaper�  r‘  )rN  r"   rw   ÚtauÚexpected_sols        r%   Útest_repeated_t_valuesr¨  2  s„  € ðð ð õ 	Œ�‰Œ€AÝ
�˜�t˜QÑ
Ô
€CÝ�s�BœG¥S¨¡V¤V¨Q KÑ0Ô0Ñ1Ô1Ð1à
�BŒF�1‰IŒI‰+€CØ	
ˆˆA‰��a˜‘e˜Q˜s™U A c¡EÐ*Ñ*€AÝ
�˜˜1�v˜q u°5Ð
9Ñ
9Ô
9€CÝ”8˜c 3˜Z˜L¨™NØ! 3˜ZØ" C˜[Ø" C˜[Ø# T˜]ð,ñ,ñ -ô -€Lõ
 �C˜Ñ&Ô&Ð&õ �˜�t˜RÑ
 Ô
 €CÝ�s�BœH R­r¬zÐ:Ñ:Ô:×BÒBÀ6ÑJÔJÑKÔKÐKõ •*�f d¨R¨D°.°.°.ÑAÔAÐAÝ•*�f d¨I¨I¨I°~°~°~ÑFÔFÐFÐFÐFr'   ):rÏ   Únumpyrê   r   r   r   r   r   r   r	   r
   r   r   r   Únumpy.testingr   r   r   r   r   r5  r   r�  Úscipy.integrater   r   r   r   rB   rX   r…   r�   rÀ   rÎ   rÑ   rÝ   rå   rí   r8   r    r)   r  r  r  r  r  r  r  r:  r>  r@  rB  rE  rI  ru  r’  r�  r¨  r@   r'   r%   ú<module>r¬     s   ððð ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ð &ð  &ð  &ð  &ð  &ñ  &ô  &ð  &ðF Oð  Oð  Oð  Oð  Oñ  Oô  Oð  OðFn+ð n+ð n+ð n+ð n+ˆlñ n+ô n+ð n+ðb&0ð &0ð &0ð &0ð &0�\ñ &0ô &0ð &0ðRW4ð W4ð W4ð W4ð W4ñ W4ô W4ð W4ðt;4ð ;4ð ;4ð ;4ð ;4ñ ;4ô ;4ð ;4ðFð ð ð ð ñ ô ð ð Eð Eð Eð Eð E�sñ Eô Eð Eð2?ð ?ð ?ð ?ð ?�ñ ?ô ?ð ?ð"Fð Fð Fð Fð Fˆñ Fô Fð Fð<?ð <?ð <?ð <?ð <?�3ñ <?ô <?ð <?ð~ ˜j¨"¨lÐ;€ð
ð ð ð
ð ð ðð ð ð
ð ð ðð ð ð
ð ð ðð ð ð
ð ð ð?!ð ?!ð ?!ð ?!ð ?!ñ ?!ô ?!ð ?!ðDð ð ð ð Ð"6ñ ô ð ð
ð ð ð ð Ð"6ñ ô ð ð
ð ð ð ð Ð 4ñ ô ð ð
ð ð ð ð Ð!5ñ ô ð ð
ð ð ð ð Ð!5ñ ô ð ð
,ð ,ð ,ðFHð FHð FHðR&ð &ð &ð@Mð Mð Mð6Gð Gð Gð Gð Gr'   