+
    /i`                     N   R t ^ RIt^ RIHtHtHtHtHtHtH	t	H
t
HtHtHt ^ RIHtHtHtHtHt ^ RIt^ RIHt ^ RIHtHtHt  ! R R4      t ! R R	4      t ! R
 R]4      t ! R R]4      t ! R R4      t ! R R4      t  ! R R4      t! ! R R]!4      t" ! R R]!4      t# ! R R]!4      t$ ! R R]!4      t%]"]#]$]%.t&R t'R t(R t)R t*R  t+R! t,R" t-R# t. ! R$ R%4      t/ ! R& R']/4      t0 ! R( R)]/4      t1 ! R* R+]/4      t2 ! R, R-]/4      t3 ! R. R/]/4      t4R0 t5R1 t6R2 t7R3 t8R4 t9R# )5z"
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                   ,   a  ] tR t^t o R tR tRtV tR# )
TestOdeintc           	     b  a \        R SP                  R4      p\        SP                  SP                  VRR7      w  r4\        SP                  W24      4       \        V3R lSP                  VRRR7      w  r4\        SP                  W24      4       \        SR4      '       d   \        SP                  SP                  VSP                  RR7      w  r4\        SP                  W24      4       \        V3R lSP                  VV3R	 lRRR
7      w  r4\        SP                  W24      4       R# R# )        g?Tfull_outputc                 &   < SP                  W4      # Nftyproblems   &&b/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/integrate/tests/test_integrate.py<lambda>(TestOdeint._do_problem.<locals>.<lambda>    s    '))A/    )r   tfirstjac)Dfunr   c                 &   < SP                  W4      # r   r   r    s   &&r$   r%   r&   +   s    giior'   c                 &   < SP                  W4      # r   r)   r    s   &&r$   r%   r&   ,   s    7;;q3Dr'   )r*   r   r(   N)	r   stop_tr   r   z0r   verifyhasattrr)   )selfr#   r!   zinfodicts   &f   r$   _do_problemTestOdeint._do_problem   s    3- WYY

A4Hq$% 97::q)-d<q$%7E"" GJJ-13KAGNN1() !!=wzz1&D-1$@KA GNN1() #r'   c                x    \          F/  pV! 4       pVP                  '       d   K  V P                  V4       K1  	  R # r   PROBLEMScmplxr5   r2   problem_clsr#   s   &  r$   test_odeintTestOdeint.test_odeint0   s-    #K!mG}}}W%	 $r'    N)__name__
__module____qualname____firstlineno__r5   r=   __static_attributes____classdictcell____classdict__s   @r$   r   r      s     *0& &r'   r   c                   .   a  ] tR t^8t o RtRR ltRtV tR# )TestODEClassNc           	       a V3R  lpRp\        SR4      '       d   V3R lp/ pSP                  f   SP                  e   SP                  VR&   SP                  VR&   V P                  WE4      pVP                  ! V3RSP
                  ^
,          RSP                  ^
,          RV/VB  VP                  SP                  R	R
7       VP                  SP                  4      p\        WP                  4       \        VP                  4       SV34       \        VP                  4       ^ 8  SV34       \        SP!                  \#        V.4      SP                  4      SV34       R# )c                 &   < SP                  W4      # r   r   r!   r3   r#   s   &&r$   r   #TestODEClass._do_problem.<locals>.f?   s    99Q?"r'   Nr)   c                 &   < SP                  W4      # r   r-   rL   s   &&r$   r)   %TestODEClass._do_problem.<locals>.jacC   s    {{1((r'   ubandlbandatolrtolmethodr   )r!   )r1   rQ   rP   	ode_classset_integratorrR   rS   set_initial_valuer/   	integrater.   r   r"   r   
successfulget_return_coder0   r   )	r2   r#   
integratorrT   r   r)   integrator_paramsigr3   s	   &f&&     r$   r5   TestODEClass._do_problem<   s7   	#7E"") ==$(A)0g&)0g&^^A#
* 	/&||B	/&||B	/ "(	/ .		/ 	WZZ3/LL(1dd#'6!23""$q(7F*;<uaSz7>>:Wf<MNr'   r?   )adams)r@   rA   rB   rC   rU   r5   rD   rE   rF   s   @r$   rI   rI   8   s     IO Or'   rI   c                   N   a  ] tR t^[t o ]tR tR tR tR t	R t
R tR tRtV tR	# )
TestOdec                    \          FV  pV! 4       pVP                  '       d   K  VP                  '       g   V P                  VR R4       V P                  VR R4       KX  	  R# voder_   bdfN)r9   r:   stiffr5   r;   s   &  r$   	test_vodeTestOde.test_vode_   sL    #K!mG}}}===  &':Wfe4 $r'   c                    \          FB  pV! 4       pVP                  '       g   V P                  VR R4       V P                  VR R4       KD  	  R# )zvoder_   re   Nr9   rf   r5   r;   s   &  r$   
test_zvodeTestOde.test_zvodei   s@    #K!mG===  '7;Wgu5	 $r'   c                z    \          F0  pV! 4       pVP                  '       d   K  V P                  VR 4       K2  	  R# lsodaNr8   r;   s   &  r$   
test_lsodaTestOde.test_lsodaq   s/    #K!mG}}}Wg.	 $r'   c                    \          FX  pV! 4       pVP                  '       d   K  VP                  '       d   K2  \        VR 4      '       d   KF  V P	                  VR4       KZ  	  R# r)   dopri5Nr9   r:   rf   r1   r5   r;   s   &  r$   test_dopri5TestOde.test_dopri5y   K    #K!mG}}}}}}w&&Wh/ $r'   c                    \          FX  pV! 4       pVP                  '       d   K  VP                  '       d   K2  \        VR 4      '       d   KF  V P	                  VR4       KZ  	  R# r)   dop853Nrv   r;   s   &  r$   test_dop853TestOde.test_dop853   ry   r'   c                   R F  pR p\        V4      P                  V4      pVP                  ^ ^ 4       \        V4      P                  V4      pVP                  ^ ^ 4       VP                  VP                  R,           4       VP                  VP                  R,           4       VP                  VP                  R,           4       VP                  4       '       d   K  Q h	  R# )rd   c                     R #       ?r?   r!   r"   s   &&r$   r   'TestOde.test_concurrent_fail.<locals>.f   s    r'   皙?N)rd   rj   rp   )r   rV   rW   rX   r!   rY   )r2   solr   rr2s   &    r$   test_concurrent_failTestOde.test_concurrent_fail   s     .C A%%c*A1%Q&&s+B  A&KKc	"LL$ KKc	"<<>>!> .r'   c                   R  p\        ^4       EF@  pR F  pVR9   d
   V^8  d   K  \        V4      P                  V4      pVP                  ^ ^ 4       \        V4      P                  V4      pVP                  ^ ^ 4       VP	                  VP
                  R,           4       VP	                  VP
                  R,           4       VP	                  VP
                  R,           4       \        VP                  R4       \        VP                  R4       K  	  R EF2  p\        V4      P                  V4      pVP                  ^ ^ 4       \        V4      P                  V4      pVP                  ^ ^ 4       VP	                  VP
                  R,           4       VP	                  VP
                  R,           4       VP	                  VP
                  R,           4       VP	                  VP
                  R,           4       VP	                  VP
                  R,           4       \        VP                  R4       \        VP                  R4       EK5  	  EKC  	  R# )c                     R # r   r?   r   s   &&r$   r   %TestOde.test_concurrent_ok.<locals>.f   s    r'   r   g?g333333?N)rd   rj   rp   ru   r|   >   rd   rp   rj   ru   r|   )ranger   rV   rW   rX   r!   r   r"   )r2   num_parallel_threadsr   kr   r   r   s   &&     r$   test_concurrent_okTestOde.test_concurrent_ok   s   	 qAE449MPQ9QF))#.##Aq)V**3/$$Q*ACC#I&RTTCZ(RTTCZ(S)c* F  ,F))#.##Aq)V**3/$$Q*ACC#I&ACC#I&RTTCZ(ACC#I&RTTCZ(S)c* ,# r'   r?   N)r@   rA   rB   rC   r   rU   rg   rl   rq   rw   r}   r   r   rD   rE   rF   s   @r$   ra   ra   [   s2     I56/
0
0"*#+ #+r'   ra   c                   <   a  ] tR t^t o ]tR tR tR tR t	Rt
V tR# )TestComplexOdec                    \          FD  pV! 4       pVP                  '       g   V P                  VR R4       K1  V P                  VR R4       KF  	  R# rc   rk   r;   s   &  r$   rg   TestComplexOde.test_vode   s@    #K!mG===  &':  &%8 $r'   c                R    \          F  pV! 4       pV P                  VR 4       K  	  R# ro   )r9   r5   r;   s   &  r$   rq   TestComplexOde.test_lsoda   s%     $K!mGWg. $r'   c                    \          FD  pV! 4       pVP                  '       d   K  \        VR 4      '       d   K2  V P                  VR4       KF  	  R# rt   r9   rf   r1   r5   r;   s   &  r$   rw   TestComplexOde.test_dopri5   ?    #K!mG}}}w&&Wh/ $r'   c                    \          FD  pV! 4       pVP                  '       d   K  \        VR 4      '       d   K2  V P                  VR4       KF  	  R# r{   r   r;   s   &  r$   r}   TestComplexOde.test_dop853   r   r'   r?   N)r@   rA   rB   rC   r   rU   rg   rq   rw   r}   rD   rE   rF   s   @r$   r   r      s#     I9/00 0r'   r   c                   D   a  ] tR t^t o R tR tR tR tR tR t	Rt
V tR# )	
TestSoloutc                h  a	a
 . o	. o
R pRpRR.pV	V
3R lpR p\        V4      P                  V4      pVP                  V4       VP                  WB4       VP	                  V4      p\        S
^ ,          V4       \        S
R,          V4       \        S	^ ,          V4       \        S	R,          V4       R# )r         $@r          @c                 h   < SP                  V 4       SP                  VP                  4       4       R # r   appendcopyr!   r"   tsyss   &&r$   solout+TestSolout._run_solout_test.<locals>.solout        IIaLIIaffhr'   c                 R    V^ ,          V^,          ,           V^,          ^,          ) .#     r?   r   s   &&r$   rhs(TestSolout._run_solout_test.<locals>.rhs  #    aD1Q4K!A$'**r'   N)r   rV   
set_soloutrW   rX   r   r   r2   r[   t0tendy0r   r   r]   retr   r   s   &&       @@r$   _run_solout_testTestSolout._run_solout_test   s    3Z	 	+ X$$Z0
f
R$ll4 2a5"%2b63'RUBRVT"r'   c                :    R F  pV P                  V4       K  	  R# ru   Nr   r   r2   r[   s   & r$   test_soloutTestSolout.test_solout      .J!!*- /r'   c                h  a	a
 . o	. o
R pRpRR.pV	V
3R lpR p\        V4      P                  V4      pVP                  WB4       VP                  V4       VP	                  V4      p\        S
^ ,          V4       \        S
R,          V4       \        S	^ ,          V4       \        S	R,          V4       R# )r   r   r   r   c                 h   < SP                  V 4       SP                  VP                  4       4       R # r   r   r   s   &&r$   r   9TestSolout._run_solout_after_initial_test.<locals>.solout  r   r'   c                 R    V^ ,          V^,          ,           V^,          ^,          ) .# r   r?   r   s   &&r$   r   6TestSolout._run_solout_after_initial_test.<locals>.rhs  r   r'   Nr   )r   rV   rW   r   rX   r   r   r   s   &&       @@r$   _run_solout_after_initial_test)TestSolout._run_solout_after_initial_test  s    3Z	 	+ X$$Z0
R$
fll4 2a5"%2b63'RUBRVT"r'   c                :    R F  pV P                  V4       K  	  R# r   )r   r   s   & r$   test_solout_after_initial$TestSolout.test_solout_after_initial+  s    .J//
; /r'   c                  aa	a
 . o	. o
R pRoRR.pVV	V
3R lpR p\        V4      P                  V4      pVP                  V4       VP                  W24       VP	                  S4      p\        S
^ ,          V4       \        S
R,          V4       \        S	^ ,          V4       \        S	R,          SR,          8  4       \        S	R,          S8  4       R# )r   r   r   r   c                    < SP                  V 4       SP                  VP                  4       4       V SR ,          8  d   R# R# r   Nr   r   r!   r"   r   r   r   s   &&r$   r   1TestSolout._run_solout_break_test.<locals>.solout7  5    IIaLIIaffh48|	 r'   c                 R    V^ ,          V^,          ,           V^,          ^,          ) .# r   r?   r   s   &&r$   r   .TestSolout._run_solout_break_test.<locals>.rhs=  r   r'   Nr   )r   rV   r   rW   rX   r   r   r   r2   r[   r   r   r   r   r]   r   r   r   r   s   &&      @@@r$   _run_solout_break_test!TestSolout._run_solout_break_test/  s    3Z		+ X$$Z0
f
R$ll4 2a5"%2b63'RUB2c!"2r'   c                :    R F  pV P                  V4       K  	  R# r   r   r   s   & r$   test_solout_breakTestSolout.test_solout_breakJ      .J''
3 /r'   r?   N)r@   rA   rB   rC   r   r   r   r   r   r   rD   rE   rF   s   @r$   r   r      s(     #0.#0<64 4r'   r   c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )TestComplexSoloutiO  c                f  a	a
 . o	. o
R pRpR .pV	V
3R lpR p\        V4      P                  V4      pVP                  V4       VP                  WB4       VP	                  V4      p\        S
^ ,          V4       \        S
R,          V4       \        S	^ ,          V4       \        S	R,          V4       R# )r         4@c                 h   < SP                  V 4       SP                  VP                  4       4       R # r   r   r   s   &&r$   r   2TestComplexSolout._run_solout_test.<locals>.soloutY  r   r'   c                 2    R V R,
          R,
          ,          .# r   r                 ?r?   r   s   &&r$   r   /TestComplexSolout._run_solout_test.<locals>.rhs]      TB'((r'   Nr   )r   rV   r   rW   rX   r   r   r   s   &&       @@r$   r   "TestComplexSolout._run_solout_testQ  s    U	 	) ,,Z8
f
R$ll4 2a5"%2b63'RUBRVT"r'   c                :    R F  pV P                  V4       K  	  R# r   r   r   s   & r$   r   TestComplexSolout.test_solouti  r   r'   c                  aa	a
 . o	. o
R pRoR .pVV	V
3R lpR p\        V4      P                  V4      pVP                  V4       VP                  W24       VP	                  S4      p\        S
^ ,          V4       \        S
R,          V4       \        S	^ ,          V4       \        S	R,          SR,          8  4       \        S	R,          S8  4       R# )r   r   c                    < SP                  V 4       SP                  VP                  4       4       V SR ,          8  d   R# R# r   r   r   s   &&r$   r   8TestComplexSolout._run_solout_break_test.<locals>.soloutu  r   r'   c                 2    R V R,
          R,
          ,          .# r   r?   r   s   &&r$   r   5TestComplexSolout._run_solout_break_test.<locals>.rhs{  r   r'   r   Nr   )r   rV   r   rW   rX   r   r   r   r   s   &&      @@@r$   r   (TestComplexSolout._run_solout_break_testm  s    U		) ,,Z8
f
R$ll4 2a5"%2b63'RUB2c!"2r'   c                :    R F  pV P                  V4       K  	  R# r   r   r   s   & r$   r   #TestComplexSolout.test_solout_break  r   r'   r?   N)
r@   rA   rB   rC   r   r   r   r   rD   rE   rF   s   @r$   r   r   O  s     #0.64 4r'   r   c                   :    ] tR tRtRtRtRt^t. tRt	Rt
RtRtRtR# )ODEi  z
ODE problem
FNgư>gh㈵>r?   )r@   rA   rB   rC   __doc__rf   r:   r.   r/   rQ   rP   rR   rS   rD   r?   r'   r$   r   r     s1     EEF	BEEDDr'   r   c                   R   a  ] tR tRt o RtR
t]! RR.]4      tRt	Rt
R tR tRtV tR	# )SimpleOscillatori  z
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)
r   r   g      @c                    \        R\        4      pRVR&   V P                  ) V P                  ,          VR&   \	        W14      # )   r   )r   r   r      )r   r   )r   floatr   mr   )r2   r3   r!   tmps   &&& r$   r   SimpleOscillator.f  s9    FE"D	VVGdff$D	3{r'   c                \   \        V P                  V P                  ,          4      pV P                  ^ ,          \	        W2,          4      ,          V P                  ^,          \        W2,          4      ,          V,          ,           p\        WAR,          V P                  V P                  R7      # )r   rR   rS   )NNNr   )	r   r   r   r/   r   r   r   rR   rS   )r2   zsr!   omegaus   &&&  r$   r0   SimpleOscillator.verify  sh    TVVdff_%GGAJs57|#dggajUW&=e&CCd8$))$))DDr'   r?   Ngq=
ףp?)r@   rA   rB   rC   r   r.   r   r   r/   r   r   r   r0   rD   rE   rF   s   @r$   r   r     s<      F	Sz5	!BAAE Er'   r   c                   `   a  ] tR tRt o RtR],          t]! . R
O4      tRt	R t
R tR tRtV tR	# )
ComplexExpi  zThe equation :lm:`\dot u = i u`gGz?Tc                    R V,          # r   r?   r2   r3   r!   s   &&&r$   r   ComplexExp.f  s    !tr'   c                &    R \        ^4      ,          # r  )r	   r  s   &&&r$   r)   ComplexExp.jac  s    #a&yr'   c                    V P                   \        R V,          4      ,          p\        W1V P                  V P                  R7      # )r   r  )r/   r   r   rR   rS   r2   r  r!   r  s   &&& r$   r0   ComplexExp.verify  s/    GGc"Q$iDIIDII>>r'   r?   N)r                  @y              @y              @y              @)r@   rA   rB   rC   r   r
   r.   r   r/   r:   r   r)   r0   rD   rE   rF   s   @r$   r
  r
    s5     *"WF	!	"BE? ?r'   r
  c                   >   a  ] tR tRt o Rt^t^ .tRtR tR t	Rt
V tR# )Pii  z'Integrate 1/(t + 1j) from t=-10 to t=10Tc                D    \        R V^
,
          R,           ,          .4      # )r   r   r   r  s   &&&r$   r   Pi.f  s    b!b&2+&'((r'   c                    R\         P                  ! ^
4      ,          p\        W1R,          V P                  V P                  R7      # )r  r  y              )r   r  )nparctanr   rR   rS   r  s   &&& r$   r0   	Pi.verify  s/    "))B-e9499499EEr'   r?   N)r@   rA   rB   rC   r   r.   r/   r:   r   r0   rD   rE   rF   s   @r$   r  r    s*     2F
BE)F Fr'   r  c                   V   a  ] tR tRt o RtRtRt. R
Ot^t^ t	. ROt
R tR tR tRtV tR	# )CoupledDecayi  zY
3 coupled decays suited for banded treatment
(banded mode makes it necessary when N>>3)
T      ?c                @   V P                   p\        P                  ! V^ ,          ) V^ ,          ,          V^,          ) V^,          ,          V^ ,          V^ ,          ,          ,           V^,          ) V^,          ,          V^,          V^,          ,          ,           .4      # r   )lmbdr  r   )r2   r3   r!   r"  s   &&& r$   r   CoupledDecay.f  su    yyxx$q'!A$q'!A$a15q'!A$a157 8 	8r'   c                X  a a S P                   p\        P                  ! S P                  S P                  ,           ^,           ^3RR7      oVV 3R lpV! ^ ^ V^ ,          ) 4       V! ^^ V^ ,          4       V! ^^V^,          ) 4       V! ^^V^,          4       V! ^^V^,          ) 4       S# )r   Forderc                 F   < VSSP                   V ,           V,
          V3&   R # r   )rP   )ricivaljr2   s   &&&r$   set_jCoupledDecay.jac.<locals>.set_j  s    *-Adjj2o"B&'r'   )r"  r  r   rQ   rP   )r2   r3   r!   r"  r-  r,  s   f&&  @r$   r)   CoupledDecay.jac  s     yyHHdjj4::-115SA	.aT!WHaDGaT!WHaDGaT!WHr'   c           
        \         P                  ! V P                  4      pV^,          V^ ,          ,
          pV^,          V^,          ,
          pV^,          V^ ,          ,
          p\         P                  ! V^ ,          ) V,          4      p\         P                  ! V^,          ) V,          4      p\         P                  ! V^,          ) V,          4      p	\         P                  ! V P
                  ^ ,          V,          V P
                  ^,          V,          V P
                  ^ ,          V^ ,          ,          V,          Wx,
          ,          ,           V P
                  ^,          V	,          V P
                  ^,          V^,          ,          V,          W,
          ,          ,           V^,          V^ ,          ,          V P
                  ^ ,          ,          V,          ^V,          Wy,
          ,          ^V,          W,
          ,          ,
          ,          ,           34      P                  4       p
\        WV P                  V P                  R7      # )r   r  )
r  r   r"  r   vstackr/   	transposer   rR   rS   )r2   r  r!   r"  d10d21d20e0e1e2r  s   &&&        r$   r0   CoupledDecay.verify  s   xx		"1gQ1gQ1gQVVT!WHqL!VVT!WHqL!VVT!WHqL!IIGGAJOGGAJOdggaj472S8BGDDGGAJOdggaj472S8BGDDGd1g
*S0W 1s7bg#66889 :
 ;D)+ 	
 DIIDII>>r'   r?   N)g      @g      @g      *@)g(\?gq=
ףp?g(\?)r@   rA   rB   rC   r   rf   r.   r/   rQ   rP   r"  r   r)   r0   rD   rE   rF   s   @r$   r  r    s>     
 EF	BEED82? ?r'   r  c                 ,    V^,          V^ ,          ) .pV# r   r?   )r!   xdxdts   && r$   r   r     s    aD1Q4%=DKr'   c                 (    \        R R.RR ..4      pV# )r   r         r  )r!   r<  r,  s   && r$   r)   r)   #  s#    Szc{ 	AHr'   c                 F    W!^,          ,          V) V^ ,          ,          .pV# r;  r?   r!   r<  r  r=  s   &&& r$   f1rB  )  s!    A$Jqt$DKr'   c                 *    \        R V.V) R ..4      pV# r   r  r!   r<  r  r,  s   &&& r$   jac1rF  .  s%    U|} 	AHr'   c                 F    W!^,          ,          V) V^ ,          ,          .pV# r;  r?   )r!   r<  omega1omega2r=  s   &&&& r$   f2rJ  4  s!    Q4K&1&DKr'   c                 *    \        R V.V) R ..4      pV# rD  r  )r!   r<  rH  rI  r,  s   &&&& r$   jac2rL  9  s%    V}~ 	 AHr'   c                 d    V^ ,          V^,          ,          V^,          ) V^ ,          ,          .pV# r   r?   rA  s   &&& r$   fvrN  ?  s+    !HQqTME!H9QqT>*DKr'   c                 F    \        R V^ ,          .V^,          ) R ..4      pV# rD  r  rE  s   &&& r$   jacvrP  D  s.    U1Xq	3! 	"AHr'   c                   V   a  ] tR tRt o RtRtRtR tR tR t	R t
R	 tR
 tR tRtV tR# )ODECheckParameterUseiJ  z=Call an ode-class solver with several cases of parameter use. Fc                    \        W4      pV P                  '       d,   VP                  V P                  R RV P                  R7       V# VP                  V P                  R RR7       V# )g&.>gHz>)rR   rS   with_jacobianr  )r   solver_uses_jacrV   solver_name)r2   r   r)   solvers   &&& r$   _get_solver ODECheckParameterUse._get_solverS  si    Q!!$"2"2D040D0D " F  !!$"2"2D!Ir'   c                    R R.pVP                  VR4       VP                  \        4       \        VP                  RR.4       R# )r   r   Nr?  )rW   rX   r
   r   r"   r2   rX  ics   && r$   _check_solver"ODECheckParameterUse._check_solver_  s;    3Z  S)!&((T3K8r'   c                \    V P                  \        \        4      pV P                  V4       R # r   )rY  r   r)   r^  )r2   rX  s   & r$   test_no_params#ODECheckParameterUse.test_no_paramse  s"    !!!S)6"r'   c                    V P                  \        \        4      pR pVP                  V4       V P                  '       d   VP                  V4       V P                  V4       R# r   N)rY  rB  rF  set_f_paramsrV  set_jac_paramsr^  r2   rX  r  s   &  r$   test_one_scalar_param*ODECheckParameterUse.test_one_scalar_parami  sO    !!"d+E"!!%(6"r'   c                    V P                  \        \        4      pR pR pVP                  W#4       V P                  '       d   VP                  W#4       V P                  V4       R# rd  )rY  rJ  rL  re  rV  rf  r^  )r2   rX  rH  rI  s   &   r$   test_two_scalar_params+ODECheckParameterUse.test_two_scalar_paramsq  sT    !!"d+F+!!&16"r'   c                    V P                  \        \        4      pR R .pVP                  V4       V P                  '       d   VP                  V4       V P                  V4       R# rd  )rY  rN  rP  re  rV  rf  r^  rg  s   &  r$   test_vector_param&ODECheckParameterUse.test_vector_paramz  sS    !!"d+c
E"!!%(6"r'   c                H   V P                  \        \        4      pVP                  V P                  ^R7       RR.pVP                  VR4       \        P                  ! \        4      ;_uu_ 4        VP                  \        4       RRR4       R#   + '       g   i     R# ; i)r   )nstepsr   r   N)rY  r   r)   rV   rW  rW   pytestwarnsUserWarningrX   r
   r\  s   &  r$   test_warns_on_failure*ODECheckParameterUse.test_warns_on_failure  sr    !!!S)d..q93Z  S)\\+&&R  '&&&s   0BB!	r?   N)r@   rA   rB   rC   r   rW  rV  rY  r^  ra  rh  rk  rn  ru  rD   rE   rF   s   @r$   rR  rR  J  s<     G
 KO
9####! !r'   rR  c                       ] tR tRtRtRtRtR# )TestDOPRI5CheckParameterUsei  ru   Fr?   Nr@   rA   rB   rC   rW  rV  rD   r?   r'   r$   rx  rx        KOr'   rx  c                       ] tR tRtRtRtRtR# )TestDOP853CheckParameterUsei  r|   Fr?   Nry  r?   r'   r$   r|  r|    rz  r'   r|  c                       ] tR tRtRtRtRtR# )TestVODECheckParameterUsei  rd   Tr?   Nry  r?   r'   r$   r~  r~    s    KOr'   r~  c                       ] tR tRtRtRtRtR# )TestZVODECheckParameterUsei  rj   Tr?   Nry  r?   r'   r$   r  r        KOr'   r  c                       ] tR tRtRtRtRtR# )TestLSODACheckParameterUsei  rp   Tr?   Nry  r?   r'   r$   r  r    r  r'   r  c                  v    ^p ^ .p\        R WRR7      w  r#\        V\        P                  ! V ..4      4       R# )r   c                     V ) # r   r?   )r"   r!   s   &&r$   r%   *test_odeint_trivial_time.<locals>.<lambda>  s    1"r'   Tr   N)r   r   r  r   )r   r!   r"   infos       r$   test_odeint_trivial_timer    s7     
B	
A_b>GAq"((RD6*+r'   c                    aaa R  oR oR p R oV3R lp\        . RO. RO. RO. RO.4      p\        P                  ! ^4      p\        P                   ! . RO4      p\        SW4V3RRRRSR	7	      w  rV\        SW4V3RRRRV RR
7
      w  rx\        SW4V3RRRRS^^R7      w  r\        SW4V3RRRRV^^RR7      w  r\	        WWRR7       \	        WYRRR7       \	        WRR7       \        VR,          VR,          4       \        V
R,          VR,          4       \        V3R lW4V3RRRRV3R lRR7
      w  r\	        W]RRR7       R# )c                 $    VP                  V 4      # r   )r   r"   r!   cs   &&&r$   func)test_odeint_banded_jacobian.<locals>.func  s    uuQxr'   c                     V# r   r?   r  s   &&&r$   r)   (test_odeint_banded_jacobian.<locals>.jac  s    r'   c                 :    VP                   P                  R R7      # Cr&  Tr   r  s   &&&r$   jac_transpose2test_odeint_banded_jacobian.<locals>.jac_transpose  s    ssxxcx""r'   c           
      l   \         P                  ! \         P                  ^ \         P                  ! V^4      3,          \         P                  ! V4      \         P                  \         P                  ! VR4      ^ 3,          \         P                  \         P                  ! VR4      ^ ^ 3,          34      pV# )r   r   )r  r1  r_diag)r"   r!   r  r)   s   &&& r$   	bjac_rows.test_odeint_banded_jacobian.<locals>.bjac_rows  sy    iiq"''!Q-/0GGAJEE"''!R.!"34EE"''!R.!Q"679 : 
r'   c                 J   < S! WV4      P                   P                  R R7      # r  r  )r"   r!   r  r  s   &&&r$   	bjac_cols.test_odeint_banded_jacobian.<locals>.bjac_cols  s$    q!##((s(33r'   TgvIh%<=gdy=i'  )argsr   rR   rS   mxstepr*   )r  r   rR   rS   r  r*   	col_deriv)r  r   rR   rS   r  r*   mlmu)	r  r   rR   rS   r  r*   r  r  r  zsol1 != sol2)err_msg-q=zsol1 != sol3)rR   r  zsol3 != sol4njec                    < S! WV4      # r   r?   )r!   r"   r  r  s   &&&r$   r%   -test_odeint_banded_jacobian.<locals>.<lambda>  s    T!]r'   c                    < S! WV4      # r   r?   )r!   r"   r  r)   s   &&&r$   r%   r    s    #aA,r'   )r  r   rR   rS   r  r*   r(   zsol1 != sol1ty)rS   r  N)i3{Gz?r   r   )r   g      g{Gz?r   )gMbP?r  g       r  )r   r   r   r?  )r      
   d   )r   r  onesr   r   r   )r  r  r  r   r!   sol1info1sol2info2sol3info3sol4info4sol1tyinfo1tyr  r  r)   s                  @@@r$   test_odeint_banded_jacobianr    si   #4 	&&'&( 	)A
 
B
!A rA4T#%!#KD
 rA4T#%+t=KD
 rA4T#%'A!5KD
 rA4T#%'A!tEKD D7DUNCD7 uU|U5\2uU|U5\2 :B)-E$)">tMOF Du6FGr'   c            	      :   R  p R pR pR pR pR pR p\        \        \        VR^ ^.4       \        \        \        VR^ ^.4       \        \        \        V R^ ^.VR7       \        \        \        V R^ ^.VR7       \        \        \        VRR.^ ^.VR7       R	# )
c                     RV ,          # r  r?   r<  r!   s   &&r$   sys1d!test_odeint_errors.<locals>.sys1d      Avr'   c                     R ^ ,          # r   r?   r  s   &&r$   bad1 test_odeint_errors.<locals>.bad1      1ur'   c                     R # foor?   r  s   &&r$   bad2 test_odeint_errors.<locals>.bad2  s    r'   c                     R ^ ,          # r   r?   r  s   &&r$   bad_jac1$test_odeint_errors.<locals>.bad_jac1  r  r'   c                 
    R ..# r  r?   r  s   &&r$   bad_jac2$test_odeint_errors.<locals>.bad_jac2  s    yr'   c                 B    RV ^ ,          ,          RV ^,          ,          .# )r  r  皙r?   r  s   &&r$   sys2d!test_odeint_errors.<locals>.sys2d  s    QqT	4!9%%r'   c                      R ^ ,          ^ .^ R..# )r   r  r?   r  s   &&r$   sys2d_bad_jac)test_odeint_errors.<locals>.sys2d_bad_jac
  s    Q
QI&&r'   r   r*   N)assert_raisesZeroDivisionErrorr   
ValueError)r  r  r  r  r  r  r  s          r$   test_odeint_errorsr    s    &' #VT3A?*fdC!Q8#VUC!QhO*feS1a&xH#VUS#JA$&r'   c            	         R  p R pR p^ ^ .^ ^ ..p\        \        \        W^ ^.4       ^ ^.^^..p\        \        \        VR.V4       \        \        \        V ^
^ ^.4       \        \        \        V^
^
.^ ^.VR7       R# )c                 
    ^R.# )r   r   r?   r  s   &&r$   badrhs&test_odeint_bad_shapes.<locals>.badrhs  s    2wr'   c                     RV ,          # r  r?   r  s   &&r$   sys1$test_odeint_bad_shapes.<locals>.sys1  r  r'   c                     . RO.# )r   )r   r   r   r?   r  s   &&r$   badjac&test_odeint_bad_shapes.<locals>.badjac   s
    {r'   r   r  N)r  r  r   RuntimeError)r  r  r  bad_y0bad_ts        r$   test_odeint_bad_shapesr    s     !fq!fF*fdQF; VaVE*fdTFE: ,QF; ,r2hAVLr'   c                    R p \         P                  ! ^
4      p\        V R.V4      p\        V\         P                  ! \        V4      ^34      4       ^\         P                  ! ^4      ,          p^ .^	,          V^V,          ^V,          ^V,          .,           p\        V ^^.VRRR7      p\         P                  ! RR..^	,          RR.RR.RR.RR..,           4      p\        W$4       \        V R.. 4      p\        V\         P                  ! . \         P                  R	7      P                  R4      4       \        \        \        V R.. RO4       \        \        \        V . RO. RO4       R
# )zRegression test for gh-8217.c                     RV ,          # )      ?g      пr?   r  s   &&r$   r  $test_repeated_t_values.<locals>.func5  s    Qwr'   r   r  )rS   rR   r   r   r  g      ?)dtypeNr   )r   r   r   r   )r   r      )r   r   r  r  )r  r   r   r   r  lenlogr   r   float64reshaper  r  )r  r!   r   tauexpected_sols        r$   test_repeated_t_valuesr  2  s1    	A
tQ
CsBGGSVQK01
BFF1I+C	
AaeQsUAcE**A
1vqu5
9C88c3ZLN!3Z"C["C[#T],, -L
 C& tR
 CsBHHRrzz:BB6JK *fdRD.A*fdI~Fr'   ):r   numpyr  r   r   r   r   r   r   r   r	   r
   r   r   numpy.testingr   r   r   r   r   rr  r   r  scipy.integrater   r   r   r   rI   ra   r   r   r   r   r   r
  r  r  r9   r   r)   rB  rF  rJ  rL  rN  rP  rR  rx  r|  r~  r  r  r  r  r  r  r  r?   r'   r$   <module>r     si      7 7  * 4 4 &  &F O  OFn+l n+b&0\ &0RW4 W4t;4 ;4F  Es E2? ?"F F<?3 <?~ j"l;




?! ?!D"6 
"6 
 4 
!5 
!5 
,FHR&@M6Gr'   