+
    LV-jY  ã                   óà   € ^ RI t^RIHtHt ^RIHtHtHtH	t	H
t
Ht ^RIHt RtRt^
tR 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# )é    N)Ú	OdeSolverÚDenseOutput)Úvalidate_max_stepÚvalidate_tolÚselect_initial_stepÚnormÚwarn_extraneousÚvalidate_first_step)Údop853_coefficientsgÍÌÌÌÌÌì?çš™™™™™É?c	                ó’  € W8^ &   \        \        VR,          VR,          4      ^R7       FT  w  p	w  r«\        P                  ! VRV	 P                  V
RV	 4      V,          pV ! WV,          ,           W,,           4      W‰&   KV  	  W$\        P                  ! VRR P                  V4      ,          ,           pV ! W,           V4      pWèR&   WÞ3# )a˜  Perform a single Runge-Kutta step.

This function computes a prediction of an explicit Runge-Kutta method and
also estimates the error of a less accurate method.

Notation for Butcher tableau is as in [1]_.

Parameters
----------
fun : callable
    Right-hand side of the system.
t : float
    Current time.
y : ndarray, shape (n,)
    Current state.
f : ndarray, shape (n,)
    Current value of the derivative, i.e., ``fun(x, y)``.
h : float
    Step to use.
A : ndarray, shape (n_stages, n_stages)
    Coefficients for combining previous RK stages to compute the next
    stage. For explicit methods the coefficients at and above the main
    diagonal are zeros.
B : ndarray, shape (n_stages,)
    Coefficients for combining RK stages for computing the final
    prediction.
C : ndarray, shape (n_stages,)
    Coefficients for incrementing time for consecutive RK stages.
    The value for the first stage is always zero.
K : ndarray, shape (n_stages + 1, n)
    Storage array for putting RK stages here. Stages are stored in rows.
    The last row is a linear combination of the previous rows with
    coefficients

Returns
-------
y_new : ndarray, shape (n,)
    Solution at t + h computed with a higher accuracy.
f_new : ndarray, shape (n,)
    Derivative ``fun(t + h, y_new)``.

References
----------
.. [1] E. Hairer, S. P. Norsett G. Wanner, "Solving Ordinary Differential
       Equations I: Nonstiff Problems", Sec. II.4.
:é   NN©ÚstartNéÿÿÿÿ)Ú	enumerateÚzipÚnpÚdotÚT)ÚfunÚtÚyÚfÚhÚAÚBÚCÚKÚsÚaÚcÚdyÚy_newÚf_news   &&&&&&&&&      Úh/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/scipy/integrate/_ivp/rk.pyÚrk_stepr'      s®   € ð^ €a�DÜœs 1 R¥5¨!¨B­%Ó0¸×:‰	ˆ‰6ˆAÜ�VŠV�A�b�q�E—G‘G˜Q˜r ˜UÓ# aÕ'ˆÙ�1˜1•u•9˜a�fÓ%ˆ‹ñ ;ð ”B—F’F˜1˜S˜b˜6Ÿ8™8 QÓ'Õ'Õ'€EÙ�•�uÓ€Eà€b�Eàˆ<Ðó    c                   óœ   a a€ ] tR t^Jt oRt]t]t]t]t	]t
]t]t]t]P                  RRRR3V 3R lltR tR tR	 tR
 tV3R ltRtVtV ;t# )Ú
RungeKuttaz,Base class for explicit Runge-Kutta methods.çü©ñÒMbP?ç�íµ ÷Æ°>FNc
                óò  <€ \        V
4       \        SV `	  WW4VR R7       RV n        \	        V4      V n        \        WgV P                  4      w  V n        V n	        V P                  V P                  V P                  4      V n        V	fj   \        V P                  V P                  V P                  WEV P                  V P                  V P                   V P                  V P                  4
      V n        M\%        W’V4      V n        \&        P(                  ! V P*                  ^,           V P                  3V P                  P,                  R7      V n        RV P                   ^,           ,          V n        RV n        R# )T)Úsupport_complexN©Údtyper   )r	   ÚsuperÚ__init__Úy_oldr   Úmax_stepr   ÚnÚrtolÚatolr   r   r   r   r   Ú	directionÚerror_estimator_orderÚh_absr
   r   ÚemptyÚn_stagesr0   r   Úerror_exponentÚ
h_previous©Úselfr   Út0Úy0Út_boundr4   r6   r7   Ú
vectorizedÚ
first_stepÚ
extraneousÚ	__class__s   &&&&&&&&&&,€r&   r2   ÚRungeKutta.__init__U   s  ø€ ô 	˜
Ô#Ü‰Ñ˜ "¨zØ)-ð 	ô 	/àˆŒ
Ü)¨(Ó3ˆŒÜ+¨D¸¿¹Ó?ÑˆŒ	�4”9Ø—‘˜$Ÿ&™& $§&¡&Ó)ˆŒØÒÜ,Ø—‘˜$Ÿ&™& $§&¡&¨'¸T¿V¹VÀTÇ^Á^Ø×*Ñ*¨D¯I©I°t·y±yóBˆD�Jô -¨Z¸WÓEˆDŒJÜ—’˜4Ÿ=™=¨1Õ,¨d¯f©fÐ5¸T¿V¹V¿\¹\ÔJˆŒØ  D×$>Ñ$>ÀÕ$BÕCˆÔØˆŽr(   c                óf   € \         P                  ! VP                  V P                  4      V,          # ©N)r   r   r   ÚE)r@   r   r   s   &&&r&   Ú_estimate_errorÚRungeKutta._estimate_errori   s    € Ü�vŠv�a—c‘c˜4Ÿ6™6Ó" QÕ&Ð&r(   c                óD   € \        V P                  W4      V,          4      # rJ   )r   rL   )r@   r   r   Úscales   &&&&r&   Ú_estimate_error_normÚRungeKutta._estimate_error_norml   s   € Ü�D×(Ñ(¨Ó.°Õ6Ó7Ð7r(   c                ó   € V P                   pV P                  pV P                  pV P                  pV P                  p^
\
        P                  ! \
        P                  ! WP                  \
        P                  ,          4      V,
          4      ,          pV P                  V8”  d   TpM V P                  V8  d   TpMV P                  pRpRp	V'       EgÒ   Wv8  d   RV P                  3# WpP                  ,          p
W,           pV P                  W°P                  ,
          ,          ^ 8”  d   V P                  pW±,
          p
\
        P                  ! V
4      p\        V P                  WV P                  W P                   V P"                  V P$                  V P&                  4	      w  rÍV\
        P(                  ! \
        P                  ! V4      \
        P                  ! V4      4      V,          ,           pV P+                  V P&                  W®4      pV^8  d\   V^ 8X  d   \,        pM+\/        \,        \0        WðP2                  ,          ,          4      pV	'       d   \/        ^V4      pVV,          pRpEK£  V\5        \6        \0        WðP2                  ,          ,          4      ,          pRp	EKÚ  X
V n        W n        XV n         XV n        Wpn
        XV n        R# )é
   FT)TN)r   r   r4   r6   r7   r   ÚabsÚ	nextafterr8   Úinfr:   ÚTOO_SMALL_STEPrC   r'   r   r   r   r   r   r   ÚmaximumrP   Ú
MAX_FACTORÚminÚSAFETYr=   ÚmaxÚ
MIN_FACTORr>   r3   )r@   r   r   r4   r6   r7   Úmin_stepr:   Ústep_acceptedÚstep_rejectedr   Út_newr$   r%   rO   Ú
error_normÚfactors   &                r&   Ú
_step_implÚRungeKutta._step_implo   s  € Ø�F‰FˆØ�F‰Fˆà—=‘=ˆØ�y‰yˆØ�y‰yˆàœŸšœrŸ|š|¨A¯~©~ÄÇÁÕ/FÓGÈ!ÕKÓLÕLˆà�:‰:˜Ô Ø‰EØ�Z‰Z˜(Ô"Ø‰Eà—J‘JˆEàˆØˆç�-ØÔØ˜d×1Ñ1Ð1Ð1àŸ™Õ&ˆAØ•EˆEà�~‰~ ¯©Õ!5Õ6¸Ô:ØŸ™�à•	ˆAÜ—F’F˜1“IˆEä" 4§8¡8¨Q°4·6±6¸1¿f¹fØ#'§6¡6¨4¯6©6°4·6±6ó;‰LˆEàœ2Ÿ:š:¤b§f¢f¨Q£i´·²¸³Ó?À$ÕFÕFˆEØ×2Ñ2°4·6±6¸1ÓDˆJà˜AŒ~Ø ”?Ü'‘Fä ¤Ü!'¨*×8KÑ8KÕ*KÕ!KóM�F÷ !Ü   F›^�Fà˜•�à $“àœœZÜ# j×4GÑ4GÕ&GÕGóIõ I�à $“àˆŒØŒ
àˆŒØˆŒàŒ
ØˆŒàÐr(   c                ó¸   € V P                   P                  P                  V P                  4      p\	        V P
                  V P                  V P                  V4      # rJ   )r   r   r   ÚPÚRkDenseOutputÚt_oldr   r3   )r@   ÚQs   & r&   Ú_dense_output_implÚRungeKutta._dense_output_impl²   s9   € Ø�F‰F�H‰H�L‰L˜Ÿ™Ó ˆÜ˜TŸZ™Z¨¯©°·±¸QÓ?Ð?r(   c                óÞ   <€ V ^8„  d   Qh/ S[ P                  ;R&   S[ P                  ;R&   S[ P                  ;R&   S[ P                  ;R&   S[ P                  ;R&   S[;R&   S[;R&   S[;R&   # )	é   r   r   r   rK   rg   Úorderr9   r<   )r   ÚndarrayÚint)ÚformatÚ__classdict__s   "€r&   Ú__annotate__ÚRungeKutta.__annotate__J   s   ø‡ ‚ á	‡z�zÑ"ñ ñ 
‡z�zÑ"ñ ñ 
‡z�zÑ"ñ	 ñ
 
‡z�zÑ"ñ ñ 
‡z�zÑ"ñ ñ Ññ ñ Ñ/ñ ñ Ñ"ò r(   )r   r7   r=   r   r:   r>   r4   r6   r   r   r3   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚNotImplementedr   r   r   rK   rg   ro   r9   r<   r   rV   r2   rL   rP   rd   rk   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rG   rs   s   @@r&   r*   r*   J   sf   ù‡ € Ù6Ø"€AØ"€AØ"€AØ"€AØ"€AØ€EØ!/ÐØ"€Hà68·f±fØ °%Ø ÷ò('ò8òAòF@÷Q … r(   r*   c                   ó  € ] tR t^·tRt^t^t^t]P                  ! . RO4      t
]P                  ! . RO. RO. RO.4      t]P                  ! . RO4      t]P                  ! . R	O4      t]P                  ! . R
O. RO. RO. RO.4      tRtR# )ÚRK23aÄ  Explicit Runge-Kutta method of order 3(2).

This uses the Bogacki-Shampine pair of formulas [1]_. The error is controlled
assuming accuracy of the second-order method, but steps are taken using the
third-order accurate formula (local extrapolation is done). A cubic Hermite
polynomial is used for the dense output.

Can be applied in the complex domain.

Parameters
----------
fun : callable
    Right-hand side of the system: the time derivative of the state ``y``
    at time ``t``. The calling signature is ``fun(t, y)``, where ``t`` is a
    scalar and ``y`` is an ndarray with ``len(y) = len(y0)``. ``fun`` must
    return an array of the same shape as ``y``. See `vectorized` for more
    information.
t0 : float
    Initial time.
y0 : array_like, shape (n,)
    Initial state.
t_bound : float
    Boundary time - the integration won't continue beyond it. It also
    determines the direction of the integration.
first_step : float or None, optional
    Initial step size. Default is ``None`` which means that the algorithm
    should choose.
max_step : float, optional
    Maximum allowed step size. Default is np.inf, i.e., the step size is not
    bounded and determined solely by the solver.
rtol, atol : float and array_like, optional
    Relative and absolute tolerances. The solver keeps the local error
    estimates less than ``atol + rtol * abs(y)``. Here `rtol` controls a
    relative accuracy (number of correct digits), while `atol` controls
    absolute accuracy (number of correct decimal places). To achieve the
    desired `rtol`, set `atol` to be smaller than the smallest value that
    can be expected from ``rtol * abs(y)`` so that `rtol` dominates the
    allowable error. If `atol` is larger than ``rtol * abs(y)`` the
    number of correct digits is not guaranteed. Conversely, to achieve the
    desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller
    than `atol`. If components of y have different scales, it might be
    beneficial to set different `atol` values for different components by
    passing array_like with shape (n,) for `atol`. Default values are
    1e-3 for `rtol` and 1e-6 for `atol`.
vectorized : bool, optional
    Whether `fun` may be called in a vectorized fashion. False (default)
    is recommended for this solver.

    If ``vectorized`` is False, `fun` will always be called with ``y`` of
    shape ``(n,)``, where ``n = len(y0)``.

    If ``vectorized`` is True, `fun` may be called with ``y`` of shape
    ``(n, k)``, where ``k`` is an integer. In this case, `fun` must behave
    such that ``fun(t, y)[:, i] == fun(t, y[:, i])`` (i.e. each column of
    the returned array is the time derivative of the state corresponding
    with a column of ``y``).

    Setting ``vectorized=True`` allows for faster finite difference
    approximation of the Jacobian by methods 'Radau' and 'BDF', but
    will result in slower execution for this solver.

Attributes
----------
n : int
    Number of equations.
status : string
    Current status of the solver: 'running', 'finished' or 'failed'.
t_bound : float
    Boundary time.
direction : float
    Integration direction: +1 or -1.
t : float
    Current time.
y : ndarray
    Current state.
t_old : float
    Previous time. None if no steps were made yet.
step_size : float
    Size of the last successful step. None if no steps were made yet.
nfev : int
    Number evaluations of the system's right-hand side.
njev : int
    Number of evaluations of the Jacobian.
    Is always 0 for this solver as it does not use the Jacobian.
nlu : int
    Number of LU decompositions. Is always 0 for this solver.

References
----------
.. [1] P. Bogacki, L.F. Shampine, "A 3(2) Pair of Runge-Kutta Formulas",
       Appl. Math. Lett. Vol. 2, No. 4. pp. 321-325, 1989.
© N)r   ç      à?ç      è?)r   r   r   )r„   r   r   )r   r…   r   )gÇqÇqÌ?gUUUUUUÕ?gÇqÇqÜ?)grÇqÇ±?gUUUUUUµ¿gÇqÇq¼¿g      À?)r   gUUUUUUõ¿grÇqÇá?)r   r   gUUUUUUå¿)r   gUUUUUUõ?gÇqÇqì¿)r   r   r   ©rv   rw   rx   ry   rz   ro   r9   r<   r   Úarrayr   r   r   rK   rg   r}   rƒ   r(   r&   r‚   r‚   ·   sƒ   † ñ[ðx €EØÐØ€HØ
�Š’Ó€AØ
�ŠÚÚÚðó 	€Að
 	�Š’Ó!€AØ
�ŠÒ)Ó*€AØ
�ŠÒ$ÚÚ Úðó 	„Ar(   r‚   c            
       ó4  € ] tR tRtRt^t^t^t]P                  ! . RO4      t
]P                  ! . RO. RO. RO. R	O. R
O. RO.4      t]P                  ! . RO4      t]P                  ! . RO4      t]P                  ! . RO. RO. RO. RO. RO. RO. RO.4      tRtR# )ÚRK45i%  a¬  Explicit Runge-Kutta method of order 5(4).

This uses the Dormand-Prince pair of formulas [1]_. The error is controlled
assuming accuracy of the fourth-order method accuracy, but steps are taken
using the fifth-order accurate formula (local extrapolation is done).
A quartic interpolation polynomial is used for the dense output [2]_.

Can be applied in the complex domain.

Parameters
----------
fun : callable
    Right-hand side of the system. The calling signature is ``fun(t, y)``.
    Here ``t`` is a scalar, and there are two options for the ndarray ``y``:
    It can either have shape (n,); then ``fun`` must return array_like with
    shape (n,). Alternatively it can have shape (n, k); then ``fun``
    must return an array_like with shape (n, k), i.e., each column
    corresponds to a single column in ``y``. The choice between the two
    options is determined by `vectorized` argument (see below).
t0 : float
    Initial time.
y0 : array_like, shape (n,)
    Initial state.
t_bound : float
    Boundary time - the integration won't continue beyond it. It also
    determines the direction of the integration.
first_step : float or None, optional
    Initial step size. Default is ``None`` which means that the algorithm
    should choose.
max_step : float, optional
    Maximum allowed step size. Default is np.inf, i.e., the step size is not
    bounded and determined solely by the solver.
rtol, atol : float and array_like, optional
    Relative and absolute tolerances. The solver keeps the local error
    estimates less than ``atol + rtol * abs(y)``. Here `rtol` controls a
    relative accuracy (number of correct digits), while `atol` controls
    absolute accuracy (number of correct decimal places). To achieve the
    desired `rtol`, set `atol` to be smaller than the smallest value that
    can be expected from ``rtol * abs(y)`` so that `rtol` dominates the
    allowable error. If `atol` is larger than ``rtol * abs(y)`` the
    number of correct digits is not guaranteed. Conversely, to achieve the
    desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller
    than `atol`. If components of y have different scales, it might be
    beneficial to set different `atol` values for different components by
    passing array_like with shape (n,) for `atol`. Default values are
    1e-3 for `rtol` and 1e-6 for `atol`.
vectorized : bool, optional
    Whether `fun` is implemented in a vectorized fashion. Default is False.

Attributes
----------
n : int
    Number of equations.
status : string
    Current status of the solver: 'running', 'finished' or 'failed'.
t_bound : float
    Boundary time.
direction : float
    Integration direction: +1 or -1.
t : float
    Current time.
y : ndarray
    Current state.
t_old : float
    Previous time. None if no steps were made yet.
step_size : float
    Size of the last successful step. None if no steps were made yet.
nfev : int
    Number evaluations of the system's right-hand side.
njev : int
    Number of evaluations of the Jacobian.
    Is always 0 for this solver as it does not use the Jacobian.
nlu : int
    Number of LU decompositions. Is always 0 for this solver.

References
----------
.. [1] J. R. Dormand, P. J. Prince, "A family of embedded Runge-Kutta
       formulae", Journal of Computational and Applied Mathematics, Vol. 6,
       No. 1, pp. 19-26, 1980.
.. [2] L. W. Shampine, "Some Practical Runge-Kutta Formulas", Mathematics
       of Computation,, Vol. 46, No. 173, pp. 135-150, 1986.
rƒ   N)r   r   g333333Ó?gš™™™™™é?gÇqÇqì?r   )r   r   r   r   r   )r   r   r   r   r   )g333333³?gÍÌÌÌÌÌÌ?r   r   r   )gŸôIŸôIï?gÞÝÝÝÝÝÀgÇqÇq@r   r   )g�qÃìž@gä •Ò1'Àg�R<6R¥#@gE3ºžœÒ¿r   )g°¨õ+Å@g„>øàƒ%Àg‹r£Ð!@gÑE]tÑÑ?g/ÌÙp‰�Ñ¿)gUUUUUU·?r   gûVšIÀÜ?gUUUUUÕä?gŒ·²Ï¡Ô¿g1Ã0ÃÀ?)g‡©Ëí2T¿r   gÄ¿
UZkq?gïîîîîî¢¿gXÊÒÑ
ª?gâðÚ{Št¥¿gš™™™™™™?)r   g#Ð
É!ÔÀgñJÀ<î’@gF ’Cò¿)r   r   r   r   )r   gãõÌF°@gFj'NÿÀg‡©¹óDg@)r   gdD�õÛÀga‡÷P#$@g2¢Çú½À)r   g¸’ý<p@g›@ê°˜Àg’Œ—àê,@)r   gRqÖ#¤ýõ¿g_40g.
@gå•¶ÈFü¿)r   g'’¾—ö?g'’¾—ÀgÉßK@r†   rƒ   r(   r&   r‰   r‰   %  s§   † ñRðf €EØÐØ€HØ
�ŠÒ,Ó-€AØ
�ŠÚÚÚÚ#Ú:Ú=ðó 	€Að 	�ŠÒBÓC€AØ
�Šò ó 	€Að 	�Šò	#âò	"ò	"ò	&âNÚFðHó 	I„Ar(   r‰   c                   ó’  a a€ ] tR tRt oRt]P                  t^t^t	]P                  R]1R]13,          t
]P                  t]P                  R] t]P                  t]P                  t]P                  t]P                  ]^,           R t]P                  ]^,           R t]P&                  RRRR3V 3R lltR tR	 tR
 tRtVtV ;t# )ÚDOP853i—  aö  Explicit Runge-Kutta method of order 8.

This is a Python implementation of "DOP853" algorithm originally written
in Fortran [1]_, [2]_. Note that this is not a literal translation, but
the algorithmic core and coefficients are the same.

Can be applied in the complex domain.

Parameters
----------
fun : callable
    Right-hand side of the system. The calling signature is ``fun(t, y)``.
    Here, ``t`` is a scalar, and there are two options for the ndarray ``y``:
    It can either have shape (n,); then ``fun`` must return array_like with
    shape (n,). Alternatively it can have shape (n, k); then ``fun``
    must return an array_like with shape (n, k), i.e. each column
    corresponds to a single column in ``y``. The choice between the two
    options is determined by `vectorized` argument (see below).
t0 : float
    Initial time.
y0 : array_like, shape (n,)
    Initial state.
t_bound : float
    Boundary time - the integration won't continue beyond it. It also
    determines the direction of the integration.
first_step : float or None, optional
    Initial step size. Default is ``None`` which means that the algorithm
    should choose.
max_step : float, optional
    Maximum allowed step size. Default is np.inf, i.e. the step size is not
    bounded and determined solely by the solver.
rtol, atol : float and array_like, optional
    Relative and absolute tolerances. The solver keeps the local error
    estimates less than ``atol + rtol * abs(y)``. Here `rtol` controls a
    relative accuracy (number of correct digits), while `atol` controls
    absolute accuracy (number of correct decimal places). To achieve the
    desired `rtol`, set `atol` to be smaller than the smallest value that
    can be expected from ``rtol * abs(y)`` so that `rtol` dominates the
    allowable error. If `atol` is larger than ``rtol * abs(y)`` the
    number of correct digits is not guaranteed. Conversely, to achieve the
    desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller
    than `atol`. If components of y have different scales, it might be
    beneficial to set different `atol` values for different components by
    passing array_like with shape (n,) for `atol`. Default values are
    1e-3 for `rtol` and 1e-6 for `atol`.
vectorized : bool, optional
    Whether `fun` is implemented in a vectorized fashion. Default is False.

Attributes
----------
n : int
    Number of equations.
status : string
    Current status of the solver: 'running', 'finished' or 'failed'.
t_bound : float
    Boundary time.
direction : float
    Integration direction: +1 or -1.
t : float
    Current time.
y : ndarray
    Current state.
t_old : float
    Previous time. None if no steps were made yet.
step_size : float
    Size of the last successful step. None if no steps were made yet.
nfev : int
    Number evaluations of the system's right-hand side.
njev : int
    Number of evaluations of the Jacobian. Is always 0 for this solver
    as it does not use the Jacobian.
nlu : int
    Number of LU decompositions. Is always 0 for this solver.

References
----------
.. [1] E. Hairer, S. P. Norsett G. Wanner, "Solving Ordinary Differential
       Equations I: Nonstiff Problems", Sec. II.
.. [2] `Page with original Fortran code of DOP853
        <http://www.unige.ch/~hairer/software.html>`_.
Nr+   r,   Fc
                ó  <€ \         SV `  ! WW4WVVW‰3	/ V
B  \        P                  ! \        P
                  V P                  3V P                  P                  R 7      V n	        V P                  RV P                  ^,            V n        R# )r/   N)r1   r2   r   r;   r   ÚN_STAGES_EXTENDEDr5   r   r0   Ú
K_extendedr<   r   r?   s   &&&&&&&&&&,€r&   r2   ÚDOP853.__init__ö  sr   ø€ ô 	‰Ò˜ "¨x¸tØ#ñ	?Ø3=ò	?äŸ(š(Ô$7×$IÑ$IØ$(§F¡Fð$,Ø37·6±6·<±<ôAˆŒà—‘Ð!3 $§-¡-°!Õ"3Ð4ˆŽr(   c                óä  € \         P                  ! VP                  V P                  4      p\         P                  ! VP                  V P                  4      p\         P
                  ! \         P                  ! V4      R \         P                  ! V4      ,          4      p\         P                  ! V4      pV^ 8„  p\         P                  ! W7,          4      WW,          ,          Wg&   W#,          V,          # )gš™™™™™¹?)r   r   r   ÚE5ÚE3ÚhypotrT   Ú	ones_like)r@   r   r   Úerr5Úerr3ÚdenomÚcorrection_factorÚmasks   &&&     r&   rL   ÚDOP853._estimate_errorÿ  s˜   € Ü�vŠv�a—c‘c˜4Ÿ7™7Ó#ˆÜ�vŠv�a—c‘c˜4Ÿ7™7Ó#ˆÜ—’œŸš › s¬R¯VªV°D«\Õ'9Ó:ˆÜŸLšL¨Ó.ÐØ�q‰yˆÜ"$§&¢&¨­Ó"4°uµ{Õ"BÐÑØ�xÐ+Õ+Ð+r(   c                ó2  € \         P                  ! VP                  V P                  4      V,          p\         P                  ! VP                  V P                  4      V,          p\         P
                  P                  V4      ^,          p\         P
                  P                  V4      ^,          pV^ 8X  d
   V^ 8X  d   R# VRV,          ,           p\         P                  ! V4      V,          \         P                  ! V\        V4      ,          4      ,          # )rn   g        g{®Gáz„?)
r   r   r   r‘   r’   Úlinalgr   rT   ÚsqrtÚlen)	r@   r   r   rO   r•   r–   Úerr5_norm_2Úerr3_norm_2r—   s	   &&&&     r&   rP   ÚDOP853._estimate_error_norm  sµ   € Ü�vŠv�a—c‘c˜4Ÿ7™7Ó# eÕ+ˆÜ�vŠv�a—c‘c˜4Ÿ7™7Ó# eÕ+ˆÜ—i‘i—n‘n TÓ*¨AÕ-ˆÜ—i‘i—n‘n TÓ*¨AÕ-ˆØ˜!Ô ¨qÔ 0ÙØ˜d [Õ0Õ0ˆÜ�vŠv�a‹y˜;Õ&¬¯ª°¼¸U»Õ1CÓ)DÕDÐDr(   c                óœ  € V P                   pV P                  p\        \        V P                  V P
                  4      V P                  ^,           R7       Fr  w  pw  rE\        P                  ! VRV P                  VRV 4      V,          pV P                  V P                  WR,          ,           V P                  V,           4      W&   Kt  	  \        P                  ! \        P                  V P                   3V P                  P"                  R7      pV^ ,          pV P$                  V P                  ,
          p	W—^ &   W(,          V	,
          V^&   ^V	,          W P&                  V,           ,          ,
          V^&   V\        P                  ! V P(                  V4      ,          VR&   \+        V P                  V P,                  V P                  V4      # )r   r   Nr/   :é   NN)rŽ   r>   r   r   ÚA_EXTRAÚC_EXTRAr<   r   r   r   r   ri   r3   r;   r   ÚINTERPOLATOR_POWERr5   r0   r   r   ÚDÚDop853DenseOutputr   )
r@   r   r   r    r!   r"   r#   ÚFÚf_oldÚdelta_ys
   &         r&   rk   ÚDOP853._dense_output_impl  sJ  € Ø�O‰OˆØ�O‰OˆÜ"¤3 t§|¡|°T·\±\Ó#BØ)-¯©¸Õ):÷<‰IˆA‰v�ä—’˜˜"˜1˜Ÿ™  2 A Ó'¨!Õ+ˆBØ—8‘8˜DŸJ™J¨­Õ.°·
±
¸RµÓ@ˆA‹Dñ<ô
 �HŠHÔ)×<Ñ<¸d¿f¹fÐEØŸ:™:×+Ñ+ô-ˆð �!•ˆØ—&‘&˜4Ÿ:™:Õ%ˆàˆ!‰Ø�y˜7Õ"ˆˆ!‰Ø�7�{˜Q§&¡&¨5¥.Õ1Õ1ˆˆ!‰Ø”B—F’F˜4Ÿ6™6 1Ó%Õ%ˆˆ"‰ä  §¡¨T¯V©V°T·Z±ZÀÓCÐCr(   )r   rŽ   )rv   rw   rx   ry   rz   r   ÚN_STAGESr<   ro   r9   r   r   r   r’   r‘   r§   r¤   r¥   r   rV   r2   rL   rP   rk   r}   r~   r   r€   s   @@r&   r‹   r‹   —  sØ   ù‡ € ñPðb #×+Ñ+€HØ€EØÐØ×Ñ˜i˜x˜i¨¨(¨Ð2Õ3€AØ×Ñ€AØ×Ñ˜i˜xÐ(€AØ	×	Ñ	€BØ	×	Ñ	€BØ×Ñ€Aà!×#Ñ# H¨q¥L MÐ2€GØ!×#Ñ# H¨q¥L MÐ2€Gà68·f±fØ °%Ø ÷5ò,òE÷Dò Dr(   r‹   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )rh   i(  c                ó–   <€ \         SV `  W4       W!,
          V n        W@n        VP                  ^,          ^,
          V n        W0n        R# )r   N)r1   r2   r   rj   Úshapero   r3   )r@   ri   r   r3   rj   rG   s   &&&&&€r&   r2   ÚRkDenseOutput.__init__)  s6   ø€ Ü‰Ñ˜Ô"Ø•ˆŒØŒØ—W‘W˜Q•Z !•^ˆŒ
ØŽ
r(   c                óL  € WP                   ,
          V P                  ,          pVP                  ^ 8X  d?   \        P                  ! W P
                  ^,           4      p\        P                  ! V4      pMA\        P                  ! W P
                  ^,           ^34      p\        P                  ! V^ R7      pV P                  \        P                  ! V P                  V4      ,          pVP                  ^8X  d   W@P                  R,          ,          pV# W@P                  ,          pV# )r   )Úaxis©:NNNN)
ri   r   Úndimr   Útilero   Úcumprodr   rj   r3   )r@   r   ÚxÚpr   s   &&   r&   Ú
_call_implÚRkDenseOutput._call_impl0  sÁ   € Ø—‘�^˜tŸv™vÕ%ˆØ�6‰6�QŒ;Ü—’˜Ÿ:™:¨�>Ó*ˆAÜ—
’
˜1“‰Aä—’˜ŸJ™J¨�N¨AÐ.Ó/ˆAÜ—
’
˜1 1Ô%ˆAØ�F‰F”R—V’V˜DŸF™F AÓ&Õ&ˆØ�6‰6�QŒ;Ø—‘˜GÕ$Õ$ˆAð ˆð —‘�OˆAàˆr(   )rj   r   ro   r3   ©	rv   rw   rx   ry   r2   rº   r}   r~   r   r€   s   @@r&   rh   rh   (  s   ù‡ € õ÷ò r(   rh   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )r¨   iA  c                óX   <€ \         SV `  W4       W!,
          V n        W@n        W0n        R # rJ   )r1   r2   r   r©   r3   )r@   ri   r   r3   r©   rG   s   &&&&&€r&   r2   ÚDop853DenseOutput.__init__B  s#   ø€ Ü‰Ñ˜Ô"Ø•ˆŒØŒØŽ
r(   c                ó<  € WP                   ,
          V P                  ,          pVP                  ^ 8X  d"   \        P                  ! V P
                  4      pMSVR,          p\        P                  ! \        V4      \        V P
                  4      3V P
                  P                  R7      p\        \        V P                  4      4       F5  w  rEW5,          pV^,          ^ 8X  d   W2,          pK%  V^V,
          ,          pK7  	  W0P
                  ,          pVP                  # )r   r/   r´   )ri   r   rµ   r   Ú
zeros_liker3   Úzerosrž   r0   r   Úreversedr©   r   )r@   r   r¸   r   Úir   s   &&    r&   rº   ÚDop853DenseOutput._call_implH  s½   € Ø—‘�^˜tŸv™vÕ%ˆà�6‰6�QŒ;Ü—’˜dŸj™jÓ)‰Aà�'•
ˆAÜ—’œ#˜a›&¤# d§j¡j£/Ð2¸$¿*¹*×:JÑ:JÔKˆAäœh t§v¡vÓ.Ö/‰DˆAØ�FˆAØ�1�u˜ŒzØ•’à�Q˜•U•
’ñ 0ð 	
�Z‰Z�ˆà�s‰sˆ
r(   )r©   r   r3   r¼   r€   s   @@r&   r¨   r¨   A  s   ù‡ € õ÷ò r(   r¨   )Únumpyr   Úbaser   r   Úcommonr   r   r   r   r	   r
   Ú r   r[   r]   rY   r'   r*   r‚   r‰   r‹   rh   r¨   rƒ   r(   r&   Ú<module>rÊ      s‹   ðÛ ß (÷A÷ Aå !ð 
€à€
Ø€
ò9ôxj@�ô j@ôZkˆ:ô kô\oIˆ:ô oIôdNDˆZô NDôb�Kô ô2˜ö r(   