ó
    EñiÜL  ã                   ó†  • S SK rS SKJrJr  S SKJrJrJr  S SK	J
r
  S SKJr  SSKJrJrJrJrJrJrJrJr  SSKJrJr  S	r\R4                  " S
\-
  S-  S
\-   S-  S/5      r\R4                  " SS\-  -
  SS\-  -   S/5      S-  rSrSr\R4                  " / SQ/ SQ/ SQ/5      r\R4                  " / SQ/ SQ/ SQ/5      r \ S    r!\ S   S\ S   -  -   r"\R4                  " SS\-  S-  -   SS\-  S-  -
  SS\-  -   /SS\-  S-  -
  SS\-  S-  -   SS\-  -
  // SQ/5      r#S r$S!r%Sr&S" r'S# r( " S$ S%\5      r) " S& S'\5      r*g)(é    N)Ú	lu_factorÚlu_solve)Ú
csc_matrixÚissparseÚeye)Úsplu)Úgroup_columnsé   )Úvalidate_max_stepÚvalidate_tolÚselect_initial_stepÚnormÚnum_jacÚEPSÚwarn_extraneousÚvalidate_first_step)Ú	OdeSolverÚDenseOutputg.!	Ž˜@é   é
   ióÿÿÿé   éÿÿÿÿé   gs>ØH@yrÆà“Ûr@¶üÃòGgÀ)g{g]„#-¸?g÷;@L§Â¿gŽhmù¿ž?)gí¡
ç}Ð?gQµ é Ê?gím£¢‚Ø¿)r
   r
   r   )gFœ§·@g†N¨]ÁøÔ?gïV�õ¿à?)gFœ§·Àg†N¨]ÁøÔ¿g!RÅ �Þ?)gò§$Zˆà?g˜¥ÊoN“ÀgÑß{ÏÀã?ù              ð?é   gUUUUUU@g«ªªªªªÀé   ç«ªªªªª
@é   )gUUUUUUÕ?gUUUUUUÀr   é   gš™™™™™É?c
                 óà  • UR                   S   n
[        U-  n[        U-  n[        R	                  U5      nUn[
        R                  " SU
45      nU[        -  nSn[
        R                  " U5      nSnSn[        [        5       GH]  n[        S5       H  nU " UUU   -   X.U   -   5      UU'   M     [
        R                  " [
        R                  " U5      5      (       d    GOUR                  R	                  [        5      X½S   -  -
  nUR                  R	                  [        5      XÍS   SUS   -  -   -  -
  nU	" UU5      nU	" UU5      nUUS'   UR                   US'   UR"                  US'   [%        UU-  5      nUb  UU-  nUb!  US:¼  d  U[        U-
  -  SU-
  -  U-  U:”  a    O=UU-  n[        R	                  U5      nUS:X  d  Ub  USU-
  -  U-  U:  a  Sn  OUnGM`     UWS-   UU4$ )	aÖ  Solve the collocation system.

Parameters
----------
fun : callable
    Right-hand side of the system.
t : float
    Current time.
y : ndarray, shape (n,)
    Current state.
h : float
    Step to try.
Z0 : ndarray, shape (3, n)
    Initial guess for the solution. It determines new values of `y` at
    ``t + h * C`` as ``y + Z0``, where ``C`` is the Radau method constants.
scale : ndarray, shape (n)
    Problem tolerance scale, i.e. ``rtol * abs(y) + atol``.
tol : float
    Tolerance to which solve the system. This value is compared with
    the normalized by `scale` error.
LU_real, LU_complex
    LU decompositions of the system Jacobians.
solve_lu : callable
    Callable which solves a linear system given a LU decomposition. The
    signature is ``solve_lu(LU, b)``.

Returns
-------
converged : bool
    Whether iterations converged.
n_iter : int
    Number of completed iterations.
Z : ndarray, shape (3, n)
    Found solution.
rate : float
    The rate of convergence.
r   r   NFr
   r   r   T)ÚshapeÚMU_REALÚ
MU_COMPLEXÚTIÚdotÚnpÚemptyÚCÚ
empty_likeÚrangeÚNEWTON_MAXITERÚallÚisfiniteÚTÚTI_REALÚ
TI_COMPLEXÚrealÚimagr   )ÚfunÚtÚyÚhÚZ0ÚscaleÚtolÚLU_realÚ
LU_complexÚsolve_luÚnÚM_realÚ	M_complexÚWÚZÚFÚchÚdW_norm_oldÚdWÚ	convergedÚrateÚkÚiÚf_realÚ	f_complexÚdW_realÚ
dW_complexÚdW_norms                               ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/scipy/integrate/_ivp/radau.pyÚsolve_collocation_systemrP   0   sñ  € ðN 	
�‰�‰
€AÜ�q‰[€FÜ˜Q‘€Iä
�‰ˆr‹
€AØ
€Aä
�Š�!�Q�Ó€AØ	
ŒQ‰€Bà€KÜ	�Š�qÓ	€BØ€IØ€DÜ”>×"ˆÜ�q–ˆAÙ�q˜2˜a™5‘y !¨¡d¡(Ó+ˆAˆa‹Dñ ô �vŠv”b—k’k !“n×%Ñ%Úà—‘—‘œÓ! F¨q©T¡MÑ1ˆØ—C‘C—G‘GœJÓ'¨)¸±t¸bÀ1ÀQÁ4¹iÑ7GÑ*HÑHˆ	á˜7 FÓ+ˆÙ˜j¨)Ó4ˆ
àˆˆ1‰Ø—‘ˆˆ1‰Ø—‘ˆˆ1‰ä�r˜E‘zÓ"ˆØÑ"Ø˜[Ñ(ˆDàÑ $¨!£)Øœ¨!Ñ+Ñ,°°D±Ñ9¸GÑCÀcÓIÙà	ˆR‰ˆÜ�E‰E�!‹Hˆà�q‹LØÑ  T¨Q°©XÑ%6¸Ñ%@À3Ó%FØˆIÙà‹ñC #ðF �a˜!‘e˜Q Ð$Ð$ó    c                 ó¾   • Ub	  Ub  US:X  a  SnOX-  X2-  S-  -  n[         R                  " SS9   [        SU5      US-  -  nSSS5        U$ ! , (       d  f       W$ = f)aá  Predict by which factor to increase/decrease the step size.

The algorithm is described in [1]_.

Parameters
----------
h_abs, h_abs_old : float
    Current and previous values of the step size, `h_abs_old` can be None
    (see Notes).
error_norm, error_norm_old : float
    Current and previous values of the error norm, `error_norm_old` can
    be None (see Notes).

Returns
-------
factor : float
    Predicted factor.

Notes
-----
If `h_abs_old` and `error_norm_old` are both not None then a two-step
algorithm is used, otherwise a one-step algorithm is used.

References
----------
.. [1] E. Hairer, S. P. Norsett G. Wanner, "Solving Ordinary Differential
       Equations II: Stiff and Differential-Algebraic Problems", Sec. IV.8.
Nr   r
   g      Ð?Úignore)Údivideg      Ð¿)r&   ÚerrstateÚmin)Úh_absÚ	h_abs_oldÚ
error_normÚerror_norm_oldÚ
multiplierÚfactors         rO   Úpredict_factorr]   ‹   sm   € ð: Ñ Ñ!2°jÀA³oØ‰
àÑ&¨.Ñ*EÈ$Ñ)NÑNˆ
ä	�Š˜HÓ	%Ü�Q˜
Ó# j°EÑ&9Ñ9ˆ÷ 
&ð €M÷ 
&Ô	%ð €Mús   °AÁ
Ac                   ój   ^ • \ rS rSrSr\R                  SSSSSS4U 4S jjrS rS	 r	S
 r
S rSrU =r$ )ÚRadaué³   a  Implicit Runge-Kutta method of Radau IIA family of order 5.

The implementation follows [1]_. The error is controlled with a
third-order accurate embedded formula. A cubic polynomial which satisfies
the collocation conditions is used for the dense output.

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)``. HHere `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`.
jac : {None, array_like, sparse_matrix, callable}, optional
    Jacobian matrix of the right-hand side of the system with respect to
    y, required by this method. The Jacobian matrix has shape (n, n) and
    its element (i, j) is equal to ``d f_i / d y_j``.
    There are three ways to define the Jacobian:

        * If array_like or sparse_matrix, the Jacobian is assumed to
          be constant.
        * If callable, the Jacobian is assumed to depend on both
          t and y; it will be called as ``jac(t, y)`` as necessary.
          For the 'Radau' and 'BDF' methods, the return value might be a
          sparse matrix.
        * If None (default), the Jacobian will be approximated by
          finite differences.

    It is generally recommended to provide the Jacobian rather than
    relying on a finite-difference approximation.
jac_sparsity : {None, array_like, sparse matrix}, optional
    Defines a sparsity structure of the Jacobian matrix for a
    finite-difference approximation. Its shape must be (n, n). This argument
    is ignored if `jac` is not `None`. If the Jacobian has only few non-zero
    elements in *each* row, providing the sparsity structure will greatly
    speed up the computations [2]_. A zero entry means that a corresponding
    element in the Jacobian is always zero. If None (default), the Jacobian
    is assumed to be dense.
vectorized : bool, optional
    Whether `fun` can be called in a vectorized fashion. Default is False.

    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 this method, but may result in slower
    execution overall in some circumstances (e.g. small ``len(y0)``).

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 of evaluations of the right-hand side.
njev : int
    Number of evaluations of the Jacobian.
nlu : int
    Number of LU decompositions.

References
----------
.. [1] E. Hairer, G. Wanner, "Solving Ordinary Differential Equations II:
       Stiff and Differential-Algebraic Problems", Sec. IV.8.
.. [2] A. Curtis, M. J. D. Powell, and J. Reid, "On the estimation of
       sparse Jacobian matrices", Journal of the Institute of Mathematics
       and its Applications, 13, pp. 117-120, 1974.
çü©ñÒMbP?g�íµ ÷Æ°>NFc                 óØ  >^ • [        U5        [        TT ]	  XX4U
5        S T l        [	        U5      T l        [        XgT R                  5      u  T l        T l	        T R                  T R                  T R                  5      T l        Uc_  [        T R                  T R                  T R                  XET R                  T R                  ST R                  T R                  5
      T l        O[#        X²U5      T l        S T l        S T l        [)        S[*        -  U-  [-        SUS-  5      5      T l        S T l        S T l        T R5                  X‰5      u  T l        T l        [;        T R8                  5      (       a  U 4S jnS n[=        T R                  SS9nO)U 4S	 jnS
 n[>        R@                  " T R                  5      nUT l!        UT l"        UT l#        ST l$        S T l%        S T l&        S T l'        g )Nr   r   g¸…ëQ¸ž?ç      à?c                 óD   >• T=R                   S-  sl         [        U 5      $ ©Nr
   )Únlur   ©ÚAÚselfs    €rO   ÚluÚRadau.__init__.<locals>.luA  s   ø€ Ø—’˜A‘•Ü˜A“w�rQ   c                 ó$   • U R                  U5      $ ©N)Úsolve©ÚLUÚbs     rO   r<   Ú Radau.__init__.<locals>.solve_luE  s   € Ø—x‘x “{Ð"rQ   Úcsc)Úformatc                 óB   >• T=R                   S-  sl         [        U SS9$ )Nr
   T)Úoverwrite_a)rf   r   rg   s    €rO   rj   rk   J  s   ø€ Ø—’˜A‘•Ü  °Ñ5Ð5rQ   c                 ó   • [        XSS9$ )NT)Úoverwrite_b)r   ro   s     rO   r<   rr   N  s   € Ü °4Ñ8Ð8rQ   T)(r   ÚsuperÚ__init__Úy_oldr   Úmax_stepr   r=   ÚrtolÚatolr3   r4   r5   Úfr   Ú	directionrW   r   rX   rZ   Úmaxr   rV   Ú
newton_tolÚsolÚ
jac_factorÚ_validate_jacÚjacÚJr   r   r&   Úidentityrj   r<   ÚIÚcurrent_jacr:   r;   rA   )ri   r3   Út0Úy0Út_boundr|   r}   r~   r†   Újac_sparsityÚ
vectorizedÚ
first_stepÚ
extraneousrj   r<   r‰   Ú	__class__s   `               €rO   rz   ÚRadau.__init__'  sŠ  ù€ ô 	˜
Ô#Ü‰Ñ˜ "¨zÔ:ØˆŒ
Ü)¨(Ó3ˆŒÜ+¨D¸¿¹Ó?ÑˆŒ	�4”9Ø—‘˜$Ÿ&™& $§&¡&Ó)ˆŒð ÑÜ,Ø—‘˜$Ÿ&™& $§&¡&¨'¸T¿V¹VÀTÇ^Á^Ø�4—9‘9˜dŸi™ió)ˆD�Jô -¨Z¸WÓEˆDŒJØˆŒØ"ˆÔä˜b¤3™h¨™o¬s°4¸À¹Ó/EÓFˆŒØˆŒàˆŒØ×-Ñ-¨cÓ@ÑˆŒ�$”&Ü�D—F‘F×Ñõò#ô �D—F‘F 5Ñ)‰Aõ6ò9ô —’˜DŸF™FÓ#ˆAàˆŒØ ˆŒØˆŒàˆÔØˆŒØˆŒØˆ�rQ   c                 óz  ^ ^^• T R                   nT R                  nTcJ  Tb*  [        T5      (       a  [        T5      m[	        T5      nTU4mU U4S jnU" X4T R
                  5      nXg4$ [        T5      (       a²  T" X45      nST l        [        U5      (       a  [        U5      nS	UU 4S jjnO"[        R                  " U[        S9nS	UU 4S jjnUR                  T R                  T R                  4:w  a2  [        ST R                  T R                  4 SUR                   S35      e Xg4$ [        T5      (       a  [        T5      nO[        R                  " T[        S9nUR                  T R                  T R                  4:w  a2  [        ST R                  T R                  4 SUR                   S35      eS nXg4$ )
Nc           	      óž   >• T=R                   S-  sl         [        TR                  XUTR                  TR                  T5      u  nTl        U$ re   )Únjevr   Úfun_vectorizedr~   r„   )r4   r5   r   r‡   ri   Úsparsitys       €€rO   Újac_wrappedÚ(Radau._validate_jac.<locals>.jac_wrappedg  sD   ø€ Ø—	’	˜Q‘•	Ü%,¨T×-@Ñ-@À!ÈØ-1¯Y©Y¸¿¹Ø-5ó&7Ñ"��4”?ð �rQ   r
   c                 óV   >• T=R                   S-  sl         [        T" X5      [        S9$ ©Nr
   ©Údtype)r–   r   Úfloat©r4   r5   Ú_r†   ri   s      €€rO   r™   rš   t  s!   ø€ Ø—I’I ‘N•IÜ%¡c¨!£i´uÑ=Ð=rQ   r�   c                 ól   >• T=R                   S-  sl         [        R                  " T" X5      [        S9$ rœ   )r–   r&   ÚasarrayrŸ   r    s      €€rO   r™   rš   {  s%   ø€ Ø—I’I ‘N•IÜŸ:š:¡c¨!£i´uÑ=Ð=rQ   z `jac` is expected to have shape z, but actually has Ú.rm   )r4   r5   r   r   r	   r   Úcallabler–   r&   r£   rŸ   r!   r=   Ú
ValueError)ri   r†   r˜   r‹   rŒ   Úgroupsr™   r‡   s   ```     rO   r…   ÚRadau._validate_jac\  s¨  ú€ Ø�V‰VˆØ�V‰Vˆà‰;ØÑ#Ü˜H×%Ñ%Ü)¨(Ó3�HÜ& xÓ0�Ø$ fÐ-�öñ ˜B D§F¡FÓ+ˆAð@ ˆ~Ðô? �c�]‰]Ù�B“ˆAØˆDŒIÜ˜�{‰{Ü˜q“M�÷>ñ >ô
 —J’J˜q¬Ñ.�÷>ð >ð �w‰w˜4Ÿ6™6 4§6¡6Ð*Ó*Ü Ð#CÀTÇVÁVÈTÏVÉVÐDTÐCUð V6Ø67·g±g°Y¸að"Aó Bð Bð +ð ˆ~Ðô ˜�}‰}Ü˜s“O‘ä—J’J˜s¬%Ñ0�à�w‰w˜4Ÿ6™6 4§6¡6Ð*Ó*Ü Ð#CÀTÇVÁVÈTÏVÉVÐDTÐCUð V6Ø67·g±g°Y¸að"Aó Bð BàˆKàˆ~ÐrQ   c                 ó
  • U R                   nU R                  nU R                  nU R                  nU R                  nU R
                  nS[        R                  " [        R                  " XR                  [        R                  -  5      U-
  5      -  nU R                  U:”  a  UnS n	S n
O;U R                  U:  a  UnS n	S n
O$U R                  nU R                  n	U R                  n
U R                  nU R                  nU R                   nU R"                  nU R$                  nSnSnS nU(       Gdå  X‡:  a  SU R&                  4$ X€R                  -  nUU-   nU R                  UU R(                  -
  -  S:”  a  U R(                  nUU-
  n[        R                  " U5      nU R*                  c&  [        R,                  " SUR.                  S   45      nO(U R+                  UU[0        -  -   5      R2                  U-
  nU[        R                  " U5      U-  -   nSnU(       d»  Ub  UcP  U R5                  [6        U-  U R8                  -  U-
  5      nU R5                  [:        U-  U R8                  -  U-
  5      n[=        U R>                  XUUUU R@                  XÍU RB                  5
      u  nnnnU(       d   U(       a  O!U R%                  XU5      nSnS nS nU(       d  M»  U(       d  US-  nS nS nGMÃ  UWS   -   nUR2                  RE                  [F        5      U-  nU RC                  XÃU-   5      nU[        RH                  " [        R                  " U5      [        R                  " U5      5      U-  -   n[K        UU-  5      nSS	[L        -  S
-   -  S	[L        -  W-   -  nU(       a:  US
:”  a4  U RC                  XÀR?                  XU-   5      U-   5      n[K        UU-  5      nUS
:”  a*  [O        X‰UU
5      n U[Q        [R        UU -  5      -  nS nS nSnOSnU(       d  GMå  US L=(       a    WS	:„  =(       a    WS:„  n![O        X‰WU
5      n [U        [V        WU -  5      n U!(       d	  U S:  a  S
n OS nS nU R?                  WW5      n"U!(       a  U" UUU"5      nSnOUb  SnU R                  U l        UU l        UU -  U l        X l,        UU l         UU l        U"U l        WU l-        XÀl        XÐl        Xàl        X°l        Xl.        U R_                  5       U l        UU4$ )Nr   Fr   r   Trc   r   gÍÌÌÌÌÌì?r   r
   ra   g333333ó?)0r4   r5   r   r|   r~   r}   r&   ÚabsÚ	nextafterr€   ÚinfrW   rX   rZ   r‡   r:   r;   rŠ   r†   ÚTOO_SMALL_STEPr�   rƒ   Úzerosr!   r(   r.   rj   r"   r‰   r#   rP   r3   r‚   r<   r%   ÚEÚmaximumr   r+   r]   r�   Ú
MIN_FACTORrV   Ú
MAX_FACTORr{   rA   Út_oldÚ_compute_dense_output)#ri   r4   r5   r   r|   r~   r}   Úmin_steprW   rX   rZ   r‡   r:   r;   rŠ   r†   ÚrejectedÚstep_acceptedÚmessager6   Út_newr7   r8   rF   Ún_iterrA   rG   Úy_newÚZEÚerrorrY   Úsafetyr\   Úrecompute_jacÚf_news#                                      rO   Ú
_step_implÚRadau._step_impl�  s›  € Ø�F‰FˆØ�F‰FˆØ�F‰Fˆà—=‘=ˆØ�y‰yˆØ�y‰yˆàœŸšœrŸ|š|¨A¯~©~ÄÇÁÑ/FÓGÈ!ÑKÓLÑLˆØ�:‰:˜Ó ØˆEØˆIØ!‰NØ�Z‰Z˜(Ó"ØˆEØˆIØ!‰Nà—J‘JˆEØŸ™ˆIØ!×0Ñ0ˆNà�F‰FˆØ—,‘,ˆØ—_‘_ˆ
à×&Ñ&ˆØ�h‰hˆàˆØˆØˆßØÓØ˜d×1Ñ1Ð1Ð1àŸ™Ñ&ˆAØ˜‘EˆEà�~‰~ ¨¯©Ñ!5Ñ6¸Ó:ØŸ™�à˜‘	ˆAÜ—F’F˜1“IˆEà�x‰xÑÜ—X’X˜q !§'¡'¨!¡*˜oÓ.‘à—X‘X˜a !¤a¡%™iÓ(×*Ñ*¨QÑ.�àœ2Ÿ6š6 !›9 tÑ+Ñ+ˆEàˆIÞØ‘? jÑ&8Ø"Ÿg™g¤g°¡k°D·F±FÑ&:¸QÑ&>Ó?�GØ!%§¡¬°a©¸$¿&¹&Ñ)@À1Ñ)DÓ!E�Jä-EØ—H‘H˜a A r¨5°$·/±/Ø¨¯©ó.8Ñ*�	˜6 1 dö !Þ"ØàŸ™  qÓ)�AØ"&�KØ"�GØ!%�J÷!  �iö$ Ø˜‘�Ø�Ø!�
Úà˜˜"™‘IˆEØ—‘—‘œ“˜a‘ˆBØ—M‘M '¨r©6Ó2ˆEØœ2Ÿ:š:¤b§f¢f¨Q£i´·²¸³Ó?À$ÑFÑFˆEÜ˜e e™mÓ,ˆJØ˜A¤Ñ.°Ñ2Ñ3°q¼>Ñ7IØ9?ñ8@ñ AˆFö ˜J¨›NØŸ™ g¯x©x¸¸u¹9Ó/EÈÑ/JÓK�Ü! %¨%¡-Ó0�
à˜A‹~Ü'¨Ø(2°NóD�àœœZ¨°&©Ó9Ñ9�à�Ø!�
Ø‘à $�÷E  ‘-ðH  4˜×F¨F°Q©J×F¸4À$¹;ˆä °*¸nÓMˆÜ”Z ¨&¡Ó1ˆæ ¨#£Ø‰FàˆGØˆJà—‘˜ Ó&ˆÞÙ�E˜5 %Ó(ˆAØ‰KØ‰_ØˆKàŸ™ˆŒØ(ˆÔà˜V‘^ˆŒ
àŒ
àˆŒØˆŒØˆŒàˆŒàŒØ$ŒØ&ÔØŒàŒ
Ø×-Ñ-Ó/ˆŒà˜gÐ%Ð%rQ   c                 ó¸   • [         R                  " U R                  R                  [        5      n[        U R                  U R                  U R                  U5      $ rm   )	r&   r%   rA   r.   ÚPÚRadauDenseOutputr³   r4   r{   )ri   ÚQs     rO   r´   ÚRadau._compute_dense_output  s7   € Ü�FŠF�4—6‘6—8‘8œQÓˆÜ §
¡
¨D¯F©F°D·J±JÀÓBÐBrQ   c                 ó   • U R                   $ rm   )rƒ   )ri   s    rO   Ú_dense_output_implÚRadau._dense_output_impl!  s   € Ø�x‰xˆrQ   )r‰   r‡   r;   r:   rA   r~   rŠ   rZ   r   rW   rX   r†   r„   rj   r|   r‚   r–   r}   rƒ   r<   r4   r³   r5   r{   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r&   r¬   rz   r…   rÁ   r´   rÉ   Ú__static_attributes__Ú__classcell__©r’   s   @rO   r_   r_   ³   sD   ø† ñrðf 79·f±fØ ¨4¸dØ!¨d÷3òj1òfL&ò\C÷ð rQ   r_   c                   ó.   ^ • \ rS rSrU 4S jrS rSrU =r$ )rÅ   i%  c                 ó|   >• [         TU ]  X5        X!-
  U l        X@l        UR                  S   S-
  U l        X0l        g re   )ry   rz   r6   rÆ   r!   Úorderr{   )ri   r³   r4   r{   rÆ   r’   s        €rO   rz   ÚRadauDenseOutput.__init__&  s6   ø€ Ü‰Ñ˜Ô"Ø‘ˆŒØŒØ—W‘W˜Q‘Z !‘^ˆŒ
Ø�
rQ   c                 óð  • XR                   -
  U R                  -  nUR                  S:X  a:  [        R                  " X R
                  S-   5      n[        R                  " U5      nO:[        R                  " X R
                  S-   S45      n[        R                  " USS9n[        R                  " U R                  U5      nUR                  S:X  a  X@R                  S S 2S 4   -  nU$ X@R                  -  nU$ )Nr   r
   )Úaxisr   )
r³   r6   Úndimr&   ÚtilerÕ   Úcumprodr%   rÆ   r{   )ri   r4   ÚxÚpr5   s        rO   Ú
_call_implÚRadauDenseOutput._call_impl-  s¼   € Ø—‘‰^˜tŸv™vÑ%ˆØ�6‰6�Q‹;Ü—’˜Ÿ:™:¨™>Ó*ˆAÜ—
’
˜1“‰Aä—’˜ŸJ™J¨™N¨AÐ.Ó/ˆAÜ—
’
˜1 1Ñ%ˆAä�FŠF�4—6‘6˜1ÓˆØ�6‰6�Q‹;Ø—‘šA˜t˜GÑ$Ñ$ˆAð ˆð —‘‰OˆAàˆrQ   )rÆ   r6   rÕ   r{   )rË   rÌ   rÍ   rÎ   rz   rÞ   rÐ   rÑ   rÒ   s   @rO   rÅ   rÅ   %  s   ø† õ÷ð rQ   rÅ   )+Únumpyr&   Úscipy.linalgr   r   Úscipy.sparser   r   r   Úscipy.sparse.linalgr   Úscipy.optimize._numdiffr	   Úcommonr   r   r   r   r   r   r   r   Úbaser   r   ÚS6Úarrayr(   r¯   r"   r#   r.   r$   r/   r0   rÄ   r+   r±   r²   rP   r]   r_   rÅ   © rQ   rO   Ú<module>rê      s“  ðÛ ß ,ß 2Ñ 2Ý $Ý 1÷*÷ *ó *÷ )à€ð ‡H‚Hˆq�2‰v˜‰m˜a "™f¨™]¨AÐ.Ó/€Ø‡H‚Hˆc�A˜‘F‰l˜C ! b¡&™L¨"Ð-Ó.°Ñ2€ð *€ð5€
ð ‡H‚HÚDÚDÚðó €ð ‡X‚XÚCÚEÚDðFó G€ð
 ˆQ‰%€Ø�‰U�R˜"˜Q™%‘ZÑ€
ð ‡H‚HØ	ˆAˆb‰D�‰F�]�E˜B˜r™E !™G‘O T¨A°©F¡]Ð3Ø	ˆAˆb‰D�‰F�]�E˜B˜r™E !™G‘O T¨A°©F¡]Ð3Úðó €ð €Ø€
Ø€
òX%òv%ôPoˆIô oôd�{õ rQ   