Ë
    âQ(hÜL  ã                   ó†  — d dl Zd dlmZmZ d dlmZmZmZ d dl	m
Z
 d dlmZ ddlmZmZmZmZmZmZmZmZ ddlmZmZ d	Z ej4                  d
ez
  dz  d
ez   dz  dg«      Z ej4                  ddez  z
  ddez  z   dg«      dz  ZdZdZ ej4                  g d¢g d¢g d¢g«      Z ej4                  g d¢g d¢g d¢g«      Z e d    Z!e d   de d   z  z   Z" ej4                  ddez  dz  z   ddez  dz  z
  ddez  z   gddez  dz  z
  ddez  dz  z   ddez  z
  gg d¢g«      Z#d Z$d!Z%dZ&d"„ Z'd#„ Z( G d$„ d%e«      Z) G d&„ d'e«      Z*y)(é    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
                 ó¼  — |j                   d   }
t        |z  }t        |z  }t        j	                  |«      }|}t        j                  d|
f«      }|t        z  }d}t        j                  |«      }d}d}t        t        «      D �]N  }t        d«      D ]  } | |||   z   |||   z   «      ||<   Œ t        j                  t        j                  |«      «      s nü|j                  j	                  t        «      ||d   z  z
  }|j                  j	                  t        «      ||d   d|d   z  z   z  z
  } |	||«      } |	||«      }||d<   |j                   |d<   |j"                  |d<   t%        ||z  «      }|�||z  }|�|dk\  s|t        |z
  z  d|z
  z  |z  |kD  r n8||z  }t        j	                  |«      }|dk(  s|�|d|z
  z  |z  |k  rd} n|}�ŒQ |dz   ||fS )	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                               úX/var/www/skyplay_api_hub/venv/lib/python3.12/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 ! a¨¡d¡(Ó+ˆAˆaŠDð	,ô �v‰v”b—k‘k !“nÔ%Ùà—‘—‘œÓ! F¨Q¨q©T¡MÑ1ˆØ—C‘C—G‘GœJÓ'¨)°q¸±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                 ó¶   — |�|�|dk(  rd}n| |z  ||z  dz  z  }t        j                  d¬«      5  t        d|«      |dz  z  }ddd«       |S # 1 sw Y   S xY w)a9  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]   ‹   ss   € ð: Ð Ð!2°jÀA²oØ‰
à˜YÑ&¨.¸:Ñ*EÈ$Ñ)NÑNˆ
ä	�‰˜HÔ	%ñ :Ü�Q˜
Ó# j°EÑ&9Ñ9ˆ÷:ð €M÷:ð €Mús   ±AÁAc                   ó^   ‡ — e Zd ZdZej
                  ddddddfˆ fd„	Zd„ Zd„ Zd	„ Z	d
„ Z
ˆ xZS )ÚRadauaÂ  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                 óØ  •‡ — t        |«       t        ‰‰ �	  |||||
«       d ‰ _        t	        |«      ‰ _        t        ||‰ j                  «      \  ‰ _        ‰ _	        ‰ j                  ‰ j                  ‰ j                  «      ‰ _        |€`t        ‰ j                  ‰ j                  ‰ j                  ||‰ j                  ‰ j                  d‰ j                  ‰ j                  «
      ‰ _        nt#        |||«      ‰ _        d ‰ _        d ‰ _        t)        dt*        z  |z  t-        d|dz  «      «      ‰ _        d ‰ _        d ‰ _        ‰ j5                  ||	«      \  ‰ _        ‰ _        t;        ‰ j8                  «      r ˆ fd„}d„ }t=        ‰ j                  d¬«      }n'ˆ fd	„}d
„ }t?        j@                  ‰ j                  «      }|‰ _!        |‰ _"        |‰ _#        d‰ _$        d ‰ _%        d ‰ _&        d ‰ _'        y )Nr   r   g¸…ëQ¸ž?ç      à?c                 óD   •— ‰xj                   dz  c_         t        | «      S ©Nr
   )Únlur   ©ÚAÚselfs    €rO   ÚluzRadau.__init__.<locals>.luA  s   ø€ Ø—’˜A‘•Ü˜A“w�rQ   c                 ó$   — | j                  |«      S ©N)Úsolve©ÚLUÚbs     rO   r<   z Radau.__init__.<locals>.solve_luE  s   € Ø—x‘x “{Ð"rQ   Úcsc)Úformatc                 óH   •— ‰xj                   dz  c_         t        | d¬«      S )Nr
   T)Úoverwrite_a)re   r   rf   s    €rO   ri   zRadau.__init__.<locals>.luJ  s   ø€ Ø—’˜A‘•Ü  °Ô5Ð5rQ   c                 ó   — t        | |d¬«      S )NT)Úoverwrite_b)r   rm   s     rO   r<   z Radau.__init__.<locals>.solve_luN  s   € Ü  A°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&   Úidentityri   r<   ÚIÚcurrent_jacr:   r;   rA   )rh   r3   Út0Úy0Út_boundry   rz   r{   rƒ   Újac_sparsityÚ
vectorizedÚ
first_stepÚ
extraneousri   r<   r†   Ú	__class__s   `               €rO   rw   zRadau.__init__'  s“  ù€ ô 	˜
Ô#Ü‰Ñ˜˜b " g¨zÔ:ØˆŒ
Ü)¨(Ó3ˆŒÜ+¨D°$¸¿¹Ó?ÑˆŒ	�4”9Ø—‘˜$Ÿ&™& $§&¡&Ó)ˆŒð ÐÜ,Ø—‘˜$Ÿ&™& $§&¡&¨'°8¸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                 óP  ‡ ‡‡— ‰ j                   }‰ j                  }‰€E‰�%t        ‰«      rt        ‰«      Št	        ‰«      }‰|fŠˆ ˆfd„} |||‰ j
                  «      }||fS t        ‰«      r« ‰||«      }d‰ _        t        |«      rt        |«      }d	ˆˆ fd„	}n"t        j                  |t        ¬«      }d	ˆˆ fd„	}|j                  ‰ j                  ‰ j                  fk7  r2t        d‰ j                  ‰ j                  f› d|j                  › d�«      ‚||fS t        ‰«      rt        ‰«      }nt        j                  ‰t        ¬«      }|j                  ‰ j                  ‰ j                  fk7  r2t        d‰ j                  ‰ j                  f› d|j                  › d�«      ‚d }||fS )
Nc           	      ó    •— ‰xj                   dz  c_         t        ‰j                  | ||‰j                  ‰j                  ‰«      \  }‰_        |S rd   )Únjevr   Úfun_vectorizedr{   r�   )r4   r5   r|   r„   rh   Úsparsitys       €€rO   Újac_wrappedz(Radau._validate_jac.<locals>.jac_wrappedg  sF   ø€ Ø—	’	˜Q‘•	Ü%,¨T×-@Ñ-@À!ÀQÈØ-1¯Y©Y¸¿¹Ø-5ó&7Ñ"��4”?ð �rQ   r
   c                 ó^   •— ‰xj                   dz  c_         t         ‰| |«      t        ¬«      S ©Nr
   ©Údtype)r’   r   Úfloat©r4   r5   Ú_rƒ   rh   s      €€rO   r•   z(Radau._validate_jac.<locals>.jac_wrappedt  s#   ø€ Ø—I’I ‘N•IÜ%¡c¨!¨Q£i´uÔ=Ð=rQ   r˜   c                 ór   •— ‰xj                   dz  c_         t        j                   ‰| |«      t        ¬«      S r—   )r’   r&   Úasarrayrš   r›   s      €€rO   r•   z(Radau._validate_jac.<locals>.jac_wrapped{  s'   ø€ Ø—I’I ‘N•IÜŸ:™:¡c¨!¨Q£i´uÔ=Ð=rQ   z `jac` is expected to have shape z, but actually has ú.rk   )r4   r5   r   r   r	   r|   Úcallabler’   r&   rž   rš   r!   r=   Ú
ValueError)rh   rƒ   r”   rˆ   r‰   Úgroupsr•   r„   s   ```     rO   r‚   zRadau._validate_jac\  sš  ú€ Ø�V‰VˆØ�V‰Vˆàˆ;ØÐ#Ü˜HÔ%Ü)¨(Ó3�HÜ& xÓ0�Ø$ fÐ-�õñ ˜B  D§F¡FÓ+ˆAð@ ˜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ð ˜Aˆ~Ðô ˜Œ}Ü˜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à˜Aˆ~ÐrQ   c                 ó”	  — | j                   }| j                  }| j                  }| j                  }| j                  }| j
                  }dt        j                  t        j                  || j                  t        j                  z  «      |z
  «      z  }| j                  |kD  r|}d }	d }
n:| j                  |k  r|}d }	d }
n$| j                  }| j                  }	| j                  }
| j                  }| j                  }| j                   }| j"                  }| j$                  }d}d}d }|�s»||k  rd| j&                  fS || j                  z  }||z   }| j                  || j(                  z
  z  dkD  r| j(                  }||z
  }t        j                  |«      }| j*                  €%t        j,                  d|j.                  d   f«      }n(| j+                  ||t0        z  z   «      j2                  |z
  }|t        j                  |«      |z  z   }d}|s¬|�|€P| j5                  t6        |z  | j8                  z  |z
  «      }| j5                  t:        |z  | j8                  z  |z
  «      }t=        | j>                  |||||| j@                  ||| jB                  «
      \  }}}}|s|rn| j%                  |||«      }d}d }d }|sŒ¬|s|dz  }d }d }�Œ |d   z   }|j2                  jE                  tF        «      |z  }| jC                  |||z   «      }|t        jH                  t        j                  |«      t        j                  |«      «      |z  z   }tK        ||z  «      }dd	tL        z  d
z   z  d	tL        z  z   z  }|r;|d
kD  r6| jC                  || j?                  |||z   «      |z   «      }tK        ||z  «      }|d
kD  r+tO        ||	||
«      } |tQ        tR        || z  «      z  }d }d }d}nd}|s�Œ»|d uxr d	kD  xr dkD  }!tO        ||	|
«      } tU        tV        | z  «      } |!s| dk  rd
} nd }d }| j?                  «      }"|!r ||||"«      }d}n|�d}| j                  | _        || _        || z  | _        || _,        || _         || _        |"| _        | _-        || _        || _        || _        || _        || _.        | j_                  «       | _        ||fS )Nr   Fr   r   Trb   r   gÍÌÌÌÌÌì?r   r
   r`   g333333ó?)0r4   r5   r|   ry   r{   rz   r&   ÚabsÚ	nextafterr}   ÚinfrW   rX   rZ   r„   r:   r;   r‡   rƒ   ÚTOO_SMALL_STEPrŠ   r€   Úzerosr!   r(   r.   ri   r"   r†   r#   rP   r3   r   r<   r%   ÚEÚmaximumr   r+   r]   r~   Ú
MIN_FACTORrV   Ú
MAX_FACTORrx   rA   Út_oldÚ_compute_dense_output)#rh   r4   r5   r|   ry   r{   rz   Ú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_implzRadau._step_impl�  s¹  € Ø�F‰FˆØ�F‰FˆØ�F‰Fˆà—=‘=ˆØ�y‰yˆØ�y‰yˆàœŸ™œrŸ|™|¨A¨t¯~©~ÄÇÁÑ/FÓGÈ!ÑKÓLÑLˆØ�:‰:˜Ò ØˆEØˆIØ!‰NØ�Z‰Z˜(Ò"ØˆEØˆIØ!‰Nà—J‘JˆEØŸ™ˆIØ!×0Ñ0ˆNà�F‰FˆØ—,‘,ˆØ—_‘_ˆ
à×&Ñ&ˆØ�h‰hˆàˆØˆØˆÚØ�xÒØ˜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°$·/±/Ø˜Z¨¯©ó.8Ñ*�	˜6 1 dñ !Ù"ØàŸ™  A qÓ)�AØ"&�KØ"�GØ!%�Jò!  ñ$ Ø˜‘�Ø�Ø!�
Ùà˜˜"™‘IˆEØ—‘—‘œ“˜a‘ˆBØ—M‘M '¨1¨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¨t¯x©x¸¸1¸u¹9Ó/EÈÑ/JÓK�Ü! %¨%¡-Ó0�
à˜AŠ~Ü'¨¨yØ(2°NóD�àœœZ¨°&©Ó9Ñ9�à�Ø!�
Ø‘à $�óE  ðH  4˜ÒF¨F°Q©JÒF¸4À$¹;ˆä  y°*¸nÓMˆÜ”Z ¨&¡Ó1ˆá ¨#¢Ø‰FàˆGØˆJà—‘˜ Ó&ˆÙÙ�E˜5 %Ó(ˆAØ‰KØˆ_ØˆKàŸ™ˆŒØ(ˆÔà˜V‘^ˆŒ
àˆŒ
àˆŒØˆŒØˆŒàˆŒàˆŒØ$ˆŒØ&ˆÔØˆŒàˆŒ
Ø×-Ñ-Ó/ˆŒà˜gÐ%Ð%rQ   c                 ó¶   — t        j                  | j                  j                  t        «      }t        | j                  | j                  | j                  |«      S rk   )	r&   r%   rA   r.   ÚPÚRadauDenseOutputr­   r4   rx   )rh   ÚQs     rO   r®   zRadau._compute_dense_output  s7   € Ü�F‰F�4—6‘6—8‘8œQÓˆÜ §
¡
¨D¯F©F°D·J±JÀÓBÐBrQ   c                 ó   — | j                   S rk   )r€   )rh   s    rO   Ú_dense_output_implzRadau._dense_output_impl!  s   € Ø�x‰xˆrQ   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r&   r¦   rw   r‚   r»   r®   rÁ   Ú__classcell__©r�   s   @rO   r_   r_   ³   s?   ø„ ñrðf 79·f±fØ ¨4¸dØ!¨dõ3òj1òfL&ò\CörQ   r_   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )r¾   c                 ó„   •— t         ‰| �  ||«       ||z
  | _        || _        |j                  d   dz
  | _        || _        y rd   )rv   rw   r6   r¿   r!   Úorderrx   )rh   r­   r4   rx   r¿   r�   s        €rO   rw   zRadauDenseOutput.__init__&  s>   ø€ Ü‰Ñ˜ Ô"Ø�U‘ˆŒØˆŒØ—W‘W˜Q‘Z !‘^ˆŒ
Øˆ�
rQ   c                 óò  — || j                   z
  | j                  z  }|j                  dk(  r9t        j                  || j
                  dz   «      }t        j                  |«      }n<t        j                  || j
                  dz   df«      }t        j                  |d¬«      }t        j                  | j                  |«      }|j                  dk(  r|| j                  d d …d f   z  }|S || j                  z  }|S )Nr   r
   )Úaxisr   )
r­   r6   Úndimr&   ÚtilerÊ   Úcumprodr%   r¿   rx   )rh   r4   ÚxÚpr5   s        rO   Ú
_call_implzRadauDenseOutput._call_impl-  sÆ   € Ø�—‘‰^˜tŸv™vÑ%ˆØ�6‰6�QŠ;Ü—‘˜˜4Ÿ:™:¨™>Ó*ˆAÜ—
‘
˜1“‰Aä—‘˜˜DŸ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Â   rÃ   rÄ   rw   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÷*÷ *ó *÷ )à€ð €B‡H�Hˆq�2‰v˜‰m˜a "™f¨™]¨AÐ.Ó/€Ø€B‡H�Hˆc�A˜‘F‰l˜C ! b¡&™L¨"Ð-Ó.°Ñ2€ð *€ð5€
ð €B‡H�HÚDÚDÚðó €ð €R‡X�XÚCÚEÚDðFó G€ð
 ˆQ‰%€Ø�‰U�R˜"˜Q™%‘ZÑ€
ð €B‡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   