§
    fŠtjŸT  ã                   ó^  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZ  G d„ dej        ¦  «        Z G d„ d¦  «        Z G d„ d	¦  «        Zd
„ Zd„ Z G d„ d¦  «        Z ed¬¦  «        	 	 d#ddœd„¦   «         Zd„ Zd„ Zde_        de_        d„ Zd„ Zd e_        d!„ Zd"e_        dS )$é    N)Ú
MapWrapperÚ_FunctionWrapper)Úxp_capabilitiesc                   ó*   ‡ — e Zd Zd„ Zˆ fd„Zd„ Zˆ xZS )ÚLRUDictc                 ó   — || _         d S ©N)Ú_LRUDict__max_size)ÚselfÚmax_sizes     úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/integrate/_quad_vec.pyÚ__init__zLRUDict.__init__   s   € Ø"ˆŒˆˆó    c                 óæ   •— || v }t          ¦   «                              ||¦  «         |r|                      |¦  «         d S t          | ¦  «        | j        k    r|                      d¬¦  «         d S d S )NF)Úlast)ÚsuperÚ__setitem__Úmove_to_endÚlenr
   Úpopitem)r   ÚkeyÚvalueÚexisting_keyÚ	__class__s       €r   r   zLRUDict.__setitem__   s}   ø€ Ø˜t˜ˆÝ‰Œ×Ò˜C Ñ'Ô'Ð'Øð 	%Ø×Ò˜SÑ!Ô!Ð!Ð!Ð!Ý�‰YŒY˜œÒ(Ð(Ø�LŠL˜eˆLÑ$Ô$Ð$Ð$Ð$ð )Ð(r   c                 ó   — t          ¦   «         ‚r	   )ÚNotImplementedError)r   Úothers     r   ÚupdatezLRUDict.update   s   € å!Ñ#Ô#Ð#r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   Ú__classcell__)r   s   @r   r   r      sV   ø€ € € € € ð#ð #ð #ð%ð %ð %ð %ð %ð$ð $ð $ð $ð $ð $ð $r   r   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚSemiInfiniteFuncz9
    Argument transform from (start, +-oo) to (0, 1)
    c                 ór   — || _         || _        |dk     rdnd| _        t          j        j        dz  | _        d S )Nr   éÿÿÿÿé   ç      à?)Ú_funcÚ_startÚ_sgnÚsysÚ
float_infoÚminÚ_tmin)r   ÚfuncÚstartÚinftys       r   r   zSemiInfiniteFunc.__init__"   s:   € ØˆŒ
ØˆŒØ !š)˜)�B�B¨ˆŒ	õ ”^Ô'¨Ñ,ˆŒ
ˆ
ˆ
r   c                 óZ   — | j         || j        z
  z  dz   }|dk    rt          j        S d|z  S )Nr'   r   )r+   r*   ÚnpÚinf)r   ÚxÚzs      r   Úget_tzSemiInfiniteFunc.get_t*   s2   € ØŒI˜˜Tœ[™Ñ)¨AÑ-ˆØ�Š6ˆ6å”6ˆMØ�1‰uˆr   c                 ó–   — || j         k     rdS | j        | j        d|z
  z  |z  z   }|                      |¦  «        }| j        ||z  z  |z  S ©Nç        r'   )r/   r*   r+   r)   ©r   Útr6   Úfs       r   Ú__call__zSemiInfiniteFunc.__call__1   sS   € ØˆtŒzŠ>ˆ>Ø�3à”˜dœi¨1¨q©5Ñ1°AÑ5Ñ5ˆAØ—
’
˜1‘”ˆAØ”9  A¡Ñ&¨Ñ*Ð*r   N©r   r    r!   Ú__doc__r   r8   r?   © r   r   r$   r$      sK   € € € € € ðð ð-ð -ð -ðð ð ð+ð +ð +ð +ð +r   r$   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚDoubleInfiniteFuncz6
    Argument transform from (-oo, oo) to (-1, 1)
    c                 óF   — || _         t          j        j        dz  | _        d S )Nr(   )r)   r,   r-   r.   r/   )r   r0   s     r   r   zDoubleInfiniteFunc.__init__>   s    € ØˆŒ
õ ”^Ô'¨Ñ,ˆŒ
ˆ
ˆ
r   c                 ó@   — |dk     rdnd}|t          |¦  «        dz   z  S )Nr   r&   r'   )Úabs)r   r6   Úss      r   r8   zDoubleInfiniteFunc.get_tD   s(   € Ø�a’%�%ˆBˆB˜QˆØ•C˜‘F”F˜Q‘JÑÐr   c                 óš   — t          |¦  «        | j        k     rdS dt          |¦  «        z
  |z  }|                      |¦  «        }||z  |z  S r:   )rG   r/   r)   r<   s       r   r?   zDoubleInfiniteFunc.__call__H   sK   € Ýˆq‰6Œ6�D”JÒÐØ�3à•S˜‘V”V‘˜qÑ ˆAØ—
’
˜1‘”ˆAØ˜‘E˜Q‘;Ðr   Nr@   rB   r   r   rD   rD   :   sK   € € € € € ðð ð-ð -ð -ð ð  ð  ðð ð ð ð r   rD   c                 óD   — t          j        t          | ¦  «        ¦  «        S r	   )r4   ÚamaxrG   )r6   s    r   Ú	_max_normrL   Q   s   € ÝŒ7•3�q‘6”6‰?Œ?Ðr   c                 ó´   — 	 t          j        | ¦  «        S # t          $ r7 t          | d¦  «        r#t	          |                      ¦   «         ¦  «        cY S Y dS w xY w)NÚ
__sizeof__é@   )r,   Ú	getsizeofÚ	TypeErrorÚhasattrÚintrN   )Úobjs    r   Ú_get_sizeofrU   U   si   € ðÝŒ}˜SÑ!Ô!Ð!øÝð ð ð å�3˜Ñ%Ô%ð 	)Ý�s—~’~Ñ'Ô'Ñ(Ô(Ð(Ð(Ð(Øˆrˆrð	øøøs   ‚ –;AÁAc                   ó   — e Zd Zd„ Zd„ ZdS )Ú_Bunchc                 ó\   — |                      ¦   «         | _         | j        j        di |¤Ž d S )NrB   )ÚkeysÚ_Bunch__keysÚ__dict__r   )r   Úkwargss     r   r   z_Bunch.__init__`   s2   € Ø—k’k‘m”mˆŒØˆŒÔÐ&Ð&˜vÐ&Ð&Ð&Ð&Ð&r   c                 ó\   ‡ — d                      ˆ fd„‰ j        D ¦   «         ¦  «        }d|› d�S )Nz, c              3   óV   •K  — | ]#}|› d t          ‰j        |         ¦  «        › �V — Œ$dS )ú=N)Úreprr[   )Ú.0Úkr   s     €r   ú	<genexpr>z"_Bunch.__repr__.<locals>.<genexpr>e   sQ   øè è € ð $
ð $
Ø01ˆqÐ+Ð+•4˜œ aÔ(Ñ)Ô)Ð+Ð+ð$
ð $
ð $
ð $
ð $
ð $
r   z_Bunch(ú))ÚjoinrZ   )r   Úkey_value_pairss   ` r   Ú__repr__z_Bunch.__repr__d   sQ   ø€ ØŸ)š)ð $
ð $
ð $
ð $
Ø59´[ð$
ñ $
ô $
ñ 
ô 
ˆð ,˜Ð+Ð+Ð+Ð+r   N)r   r    r!   r   rg   rB   r   r   rW   rW   _   s2   € € € € € ð'ð 'ð 'ð,ð ,ð ,ð ,ð ,r   rW   T)Únp_onlyç¬÷N’~hç:Œ0âŽyE>Ú2ç    „×—Aé'  r'   FrB   )Úargsc                ó´  ‡=‡>‡?— t          |¦  «        }t          |¦  «        }|r(t          |t          ¦  «        s|f}t          | |¦  «        } t	          |||||||	|
€dn|
|¬¦	  «	        }t          j        |¦  «        rUt          j        |¦  «        rAt          | ||¬¦  «        Š>|	�t          ˆ>fd„|	D ¦   «         ¦  «        |d<   t          ‰>ddfi |¤ŽS t          j        |¦  «        rjt          j        |¦  «        rVt          | ||¬¦  «        Š>|	�t          ˆ>fd	„|	D ¦   «         ¦  «        |d<   t          ‰>ddfi |¤Ž}|d          f|dd…         z   S t          j        |¦  «        r’t          j        |¦  «        r~||k     rd
nd}t          | ¦  «        Š>|	�"dt          ˆ>fd„|	D ¦   «         ¦  «        z   |d<   nd|d<   ||k    rt          ‰>d
dfi |¤Ž}nt          ‰>ddfi |¤Ž}|d         |z  f|dd…         z   S t          j        |¦  «        rt          j        |¦  «        st          d|› d|› �¦  «        ‚t          t          t
          j        j        dœ}t          |¦  «        r|}n||         }d}d}	 t           t           t"          t$          dœ|
         }n%# t&          $ r}t          d|
›�¦  «        |‚d}~ww xY w|	€||fg}nl|}g }t)          |	¦  «        D ]A}t          |¦  «        }||cxk     r|k     r	n n||k    rŒ(|                     ||f¦  «         |}ŒB|                     ||f¦  «         d}d}d}dŠ?g }d}|D ]ä\  }} |||| |¦  «        \  } }!}"||j        z  }|€€t          | t           t.          z  ¦  «        r!|t          t
          j        j        fv rt0          }| }t          |!¦  «        }t          |"¦  «        }|t3          | ¦  «        z  }#t5          |#¦  «        Š?n|| z  }||!z  }||"z  }t7          j        | ¦  «        ‰?||f<   |                     |! ||f¦  «         Œåt9          j        |¦  «         d}$d}%d}&d}'|$d|%d|&d|'di}(t=          |¦  «        5 })|%}*|�r•t?          |¦  «        |k     �r�tA          || ||¦  «        z  ¦  «        }+g },d}-tC          |¦  «        D ]p}.|s nk|.dk    r|-||+dz  z
  k    r nWt9          j"        |¦  «        }/|/\  }0}}‰? #                    ||fd¦  «        }1|,                     |0 |||1f| ||f¦  «         |-|0 z  }-Œq |)tH          |,¦  «        D ]J}2|2\  }3}4}5}6}7||7z  }||3z  }||4z  }||5z  }|6D ])}8|8\  }}} }!| ‰?||f<   t9          j%        ||! ||f¦  «         Œ*ŒKt?          |¦  «        |k    r1tA          || ||¦  «        z  ¦  «        }+||+dz  k     r|$}*nJ||k     r|&}*nAt          j        |¦  «        rt          j        |¦  «        s|'}*n|rt?          |¦  «        |k     �°�ddd¦  «         n# 1 swxY w Y   |}||z   }!|rÈt          j&        |¦  «        }9t          j'        |9j(        t
          j)        |9j*        ¬¦  «        Š=t          j+        ˆ=ˆ?fd„|D ¦   «         |9j*        ¬¦  «        }:t          j+        d„ |D ¦   «         ¦  «        };t          j+        d„ |D ¦   «         ¦  «        }tY          ||*|$k    |*|(|*         ||:|;¬¦  «        }<||!|<fS ||!fS )a  Adaptive integration of a vector-valued function.

    Parameters
    ----------
    f : callable
        Vector-valued function f(x) to integrate.
    a : float
        Initial point.
    b : float
        Final point.
    epsabs : float, optional
        Absolute tolerance.
    epsrel : float, optional
        Relative tolerance.
    norm : {'max', '2'}, optional
        Vector norm to use for error estimation.
    cache_size : int, optional
        Number of bytes to use for memoization.
    limit : float or int, optional
        An upper bound on the number of subintervals used in the adaptive
        algorithm.
    workers : int or map-like callable, optional
        If `workers` is an integer, part of the computation is done in
        parallel subdivided to this many tasks (using
        :class:`python:multiprocessing.pool.Pool`).
        Supply `-1` to use all cores available to the Process.
        Alternatively, supply a map-like callable, such as
        :meth:`python:multiprocessing.pool.Pool.map` for evaluating the
        population in parallel.
        This evaluation is carried out as ``workers(func, iterable)``.
    points : list, optional
        List of additional breakpoints.
    quadrature : {'gk21', 'gk15', 'trapezoid'}, optional
        Quadrature rule to use on subintervals.
        Options: 'gk21' (Gauss-Kronrod 21-point rule),
        'gk15' (Gauss-Kronrod 15-point rule),
        'trapezoid' (composite trapezoid rule).
        Default: 'gk21' for finite intervals and 'gk15' for (semi-)infinite.
    full_output : bool, optional
        Return an additional ``info`` object.
    args : tuple, optional
        Extra arguments to pass to function, if any.

        .. versionadded:: 1.8.0

    Returns
    -------
    res : {float, array-like}
        Estimate for the result
    err : float
        Error estimate for the result in the given norm
    info : object
        Returned only when ``full_output=True``.
        Result object with the attributes:

        success : bool
            Whether integration reached target precision.
        status : int
            Indicator for convergence, success (0),
            failure (1), and failure due to rounding error (2).
        neval : int
            Number of function evaluations.
        intervals : ndarray, shape (num_intervals, 2)
            Start and end points of subdivision intervals.
        integrals : ndarray, shape (num_intervals, ...)
            Integral for each interval.
            Note that at most ``cache_size`` values are recorded,
            and the array may contains *nan* for missing items.
        errors : ndarray, shape (num_intervals,)
            Estimated integration error for each interval.

    Notes
    -----
    The algorithm mainly follows the implementation of QUADPACK's
    DQAG* algorithms, implementing global error control and adaptive
    subdivision.

    The algorithm here has some differences to the QUADPACK approach:

    Instead of subdividing one interval at a time, the algorithm
    subdivides N intervals with largest errors at once. This enables
    (partial) parallelization of the integration.

    The logic of subdividing "next largest" intervals first is then
    not implemented, and we rely on the above extension to avoid
    concentrating on "small" intervals only.

    The Wynn epsilon table extrapolation is not used (QUADPACK uses it
    for infinite intervals). This is because the algorithm here is
    supposed to work on vector-valued functions, in an user-specified
    norm, and the extension of the epsilon algorithm to this case does
    not appear to be widely agreed. For max-norm, using elementwise
    Wynn epsilon could be possible, but we do not do this here with
    the hope that the epsilon extrapolation is mainly useful in
    special cases.

    References
    ----------
    [1] R. Piessens, E. de Doncker, QUADPACK (1983).

    Examples
    --------
    We can compute integrations of a vector-valued function:

    >>> from scipy.integrate import quad_vec
    >>> import numpy as np
    >>> import matplotlib.pyplot as plt
    >>> alpha = np.linspace(0.0, 2.0, num=30)
    >>> f = lambda x: x**alpha
    >>> x0, x1 = 0, 2
    >>> y, err = quad_vec(f, x0, x1)
    >>> plt.plot(alpha, y)
    >>> plt.xlabel(r"$\alpha$")
    >>> plt.ylabel(r"$\int_{0}^{2} x^\alpha dx$")
    >>> plt.show()

    When using the argument `workers`, one should ensure
    that the main module is import-safe, for instance
    by rewriting the example above as:

    .. code-block:: python

        from scipy.integrate import quad_vec
        import numpy as np
        import matplotlib.pyplot as plt

        alpha = np.linspace(0.0, 2.0, num=30)
        x0, x1 = 0, 2
        def f(x):
            return x**alpha

        if __name__ == "__main__":
            y, err = quad_vec(f, x0, x1, workers=2)
    NÚgk15)	ÚepsabsÚepsrelÚnormÚ
cache_sizeÚlimitÚworkersÚpointsÚ
quadratureÚfull_output)r1   r2   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S r	   ©r8   ©ra   ÚxpÚf2s     €r   rc   zquad_vec.<locals>.<genexpr>  ó-   øè è € Ð$CÐ$C°b R§X¢X¨b¡\¤\Ð$CÐ$CÐ$CÐ$CÐ$CÐ$Cr   rw   r   r'   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S r	   r{   r|   s     €r   rc   zquad_vec.<locals>.<genexpr>  r   r   r&   ©r   c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S r	   r{   r|   s     €r   rc   zquad_vec.<locals>.<genexpr>  s-   øè è € Ð+JÐ+J¸R¨B¯HªH°R©L¬LÐ+JÐ+JÐ+JÐ+JÐ+JÐ+Jr   zinvalid integration bounds a=z, b=)NÚmaxrk   é€   é   )NÚgk21rp   Ú	trapezoidzunknown quadrature é   zTarget precision reached.zTarget precision not reached.z<Target precision could not be reached due to rounding error.zNon-finite values encountered.é   )Údtypec                 óX   •— g | ]&}‰                      |d          |d         f‰¦  «        ‘Œ'S ©r'   r…   )Úget)ra   r7   ÚdummyÚinterval_caches     €€r   ú
<listcomp>zquad_vec.<locals>.<listcomp>µ  sE   ø€ ð :ð :ð :Ø*+ð -×0Ò0°!°A´$¸¸!¼°¸uÑEÔEð :ð :ð :r   c                 ó    — g | ]}|d           ‘ŒS r�   rB   ©ra   r7   s     r   r�   zquad_vec.<locals>.<listcomp>·  s   € Ð4Ð4Ð4 Q˜A˜aœD˜5Ð4Ð4Ð4r   c                 ó.   — g | ]}|d          |d         g‘ŒS rŒ   rB   r’   s     r   r�   zquad_vec.<locals>.<listcomp>¸  s$   € Ð>Ð>Ð>¨q˜q œt Q q¤T˜lÐ>Ð>Ð>r   )ÚnevalÚsuccessÚstatusÚmessageÚ	intervalsÚ	integralsÚerrors)-ÚfloatÚ
isinstanceÚtupler   Údictr4   ÚisfiniteÚisinfr$   Úquad_vecrD   Ú
ValueErrorrL   Úlinalgrs   ÚcallableÚ_quadrature_gk21Ú_quadrature_gk15Ú_quadrature_trapezoidÚKeyErrorÚsortedÚappendÚnum_evalÚcomplexrG   rU   r   ÚcopyÚheapqÚheapifyr   r   rƒ   ÚrangeÚheappopÚpopÚ_subdivide_intervalÚheappushÚasarrayÚfullÚshapeÚnanrŠ   ÚarrayrW   )@r>   ÚaÚbrq   rr   rs   rt   ru   rv   rw   rx   ry   rn   r\   ÚresÚsgnÚ
norm_funcsÚ	norm_funcÚparallel_countÚmin_intervalsÚ_quadratureÚeÚinitial_intervalsÚprevÚpÚglobal_integralÚglobal_errorÚrounding_errorr˜   r”   Úx1Úx2ÚigÚerrÚrndÚcache_countÚ	CONVERGEDÚNOT_CONVERGEDÚROUNDING_ERRORÚNOT_A_NUMBERÚ
status_msgÚ
mapwrapperÚierÚtolÚ
to_processÚerr_sumÚjÚintervalÚneg_old_errÚold_intÚpartsÚdintÚderrÚ
dround_errÚsubintÚdnevalr6   Úres_arrr™   rš   ÚinforŽ   r~   r�   s@                                                                @@@r   r¡   r¡   k   s	  øøø€ õT 	ˆa‰Œ€AÝˆa‰Œ€Aàð &Ý˜$¥Ñ&Ô&ð 	Ø�7ˆDõ ˜Q Ñ%Ô%ˆõ ˜ØØØ'ØØ!ØØ'1Ð'9˜V˜V¸zØ)ð+ñ +ô +€Fõ 
„{�1�~„~ð E�"œ( 1™+œ+ð EÝ˜a q°Ð2Ñ2Ô2ˆØÐÝ$Ð$CÐ$CÐ$CÐ$C¸FÐ$CÑ$CÔ$CÑCÔCˆF�8ÑÝ˜˜A˜qÐ+Ð+ FÐ+Ð+Ð+Ý	Œ�Q‰Œð E�BœH Q™KœKð EÝ˜a q°Ð2Ñ2Ô2ˆØÐÝ$Ð$CÐ$CÐ$CÐ$C¸FÐ$CÑ$CÔ$CÑCÔCˆF�8ÑÝ�r˜1˜aÐ*Ð* 6Ð*Ð*ˆØ�Q”�ˆz˜C   œGÑ#Ð#Ý	Œ�!‰Œð E�œ !™œð EØ˜’E�Eˆbˆb˜qˆõ   Ñ"Ô"ˆØÐØ#¥eÐ+JÐ+JÐ+JÐ+JÀ6Ð+JÑ+JÔ+JÑ&JÔ&JÑJˆF�8ÑÐà#ˆF�8Ñà�Š6ˆ6Ý˜2˜r 1Ð/Ð/¨Ð/Ð/ˆCˆCå˜2˜q !Ð.Ð. vÐ.Ð.ˆCà�A”�s‘
ˆ}˜s 1 2 2œwÑ&Ð&ÝŒk˜!‰nŒnð E¥¤¨Q¡¤ð EÝÐC¸ÐCÐCÀÐCÐCÑDÔDÐDõ ÝÝŒYŒ^ðð €Jõ
 ��~„~ð %Øˆ	ˆ	à˜tÔ$ˆ	à€NØ€MðFÝ-Ý/Ý/Ý$9ð;ð ;ð <FôGˆˆøõ ð Fð Fð FÝÐ=¨zÐ=Ð=Ñ>Ô>ÀAÐEøøøøðFøøøð €~Ø ˜V˜HÐÐàˆØÐÝ˜‘”ð 	ð 	ˆAÝ�a‘”ˆAØ˜�I�I’I�I˜A’I�I�I�I�I ! t¢) )ØØ×$Ò$ d¨A YÑ/Ô/Ð/ØˆDˆDØ× Ò  $¨ Ñ+Ô+Ð+à€OØ€LØ€NØ€NØ€IØ€Eà#ð )ð )‰ˆˆBØ"�{ 2 r¨1¨iÑ8Ô8‰ˆˆC�Ø�Ô%Ñ%ˆàÐ"Ý˜"�e¥g™oÑ.Ô.ð $à¥­B¬I¬NÐ ;Ð;Ð;Ý #�Ià ˆOÝ  ™:œ:ˆLÝ" 3™ZœZˆNà$­°B©¬Ñ7ˆKÝ$ [Ñ1Ô1ˆNˆNà˜rÑ!ˆOØ˜CÑˆLØ˜cÑ!ˆNå#'¤9¨R¡=¤=ˆ˜˜B�xÑ Ø×Ò˜3˜$  B˜Ñ(Ô(Ð(Ð(å	„M�)ÑÔÐà€IØ€MØ€NØ€Lð 	Ð.ØÐ6ØÐVØÐ6ð	€Jõ 
�GÑ	Ô	ð 3 
Øˆàñ 0	�C 	™NœN¨UÒ2Ñ2å�f˜f Y Y¨Ñ%?Ô%?Ñ?Ñ@Ô@ˆCàˆJØˆGå˜>Ñ*Ô*ð (ð (�Ø ð Ø�Eà�q’5�5˜W |°c¸!±eÑ';Ò;Ð;à�Eå œ=¨Ñ3Ô3�à$,Ñ!�˜Q Ø(×,Ò,¨a°¨V°TÑ:Ô:�Ø×!Ò!Ø"�l A q¨'Ð2°A°yÀ+ÐNñô ð ð ˜K˜<Ñ'��ð $˜Õ$7¸ÑDÔDð 	>ð 	>�Ø9>Ñ6��d˜J¨°Ø˜‘�Ø 4Ñ'�Ø Ñ$�Ø *Ñ,�Øð >ð >�AØ&'‘O�B˜˜B Ø/1�N B¨ 8Ñ,Ý”N 9°¨t°R¸¨nÑ=Ô=Ð=Ð=ð>õ �9‰~Œ~ Ò.Ð.Ý˜& &¨¨°?Ñ)CÔ)CÑ"CÑDÔD�Ø # a¡%Ò'Ð'Ø#�CØØ .Ò0Ð0Ø(�CØå”K Ñ-Ô-ð µ"´+¸nÑ2MÔ2Mð Ø"�Øða ð 0	�C 	™NœN¨UÒ2Ñ2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ðj €CØ
˜Ñ
'€Càð Ý”*˜S‘/”/ˆÝ”˜œ¥r¤v°W´]ÐCÑCÔCˆÝ”Hð :ð :ð :ð :ð :Ø/8ð:ñ :ô :ØAHÄðPñ Pô Pˆ	å”Ð4Ð4¨)Ð4Ñ4Ô4Ñ5Ô5ˆÝ”HÐ>Ð>°IÐ>Ñ>Ô>Ñ?Ô?ˆ	å˜EØ" iÒ/Ø Ø(¨œoØ )Ø )Ø#ð%ñ %ô %ˆð �S˜$ÐÐà�SˆzÐs+   É0!J Ê
J4ÊJ/Ê/J4ÑFW:×:W>ØW>c                 óî  — | \  }}}}|\  }}}}d||z   z  }	t          |dd¦  «        dk    r" t          j        |j        ¦  «        |¦  «        } |||	||¦  «        \  }
}}|j        } ||	|||¦  «        \  }}}||j        z  }|€ |||||¦  «        \  }}}||j        z  }t          |dd¦  «        dk    r|                     ¦   «         j        }|
|z   |z
  }||z   |z
  }||z   }||	|
|f|	|||ff}|||||fS )Nr(   rt   r   )ÚgetattrÚ	functoolsÚ	lru_cachert   r«   Ú
cache_infoÚmisses)rn   rÛ   r>   r¿   rÂ   Úold_errrº   r»   rÝ   ÚcÚs1Úerr1Úround1rã   Ús2Úerr2Úround2Ú_rß   rà   rá   Úsubintervalss                         r   r³   r³   Æ  sT  € Ø*.Ñ'€Hˆa�˜KØ%Ñ€GˆQ��7àˆq�1‰u‰€Aõ ˆ{˜L¨!Ñ,Ô,¨qÒ0Ð0Ø7�IÔ Ô 6Ñ7Ô7¸Ñ:Ô:ˆà"�{ 1 a¨¨IÑ6Ô6Ñ€BˆˆfØÔ!€FØ"�{ 1 a¨¨IÑ6Ô6Ñ€BˆˆfØ
ˆkÔ"Ñ"€FØ€Ø#˜ A q¨!¨YÑ7Ô7‰ˆ��AØ�+Ô&Ñ&ˆåˆ{˜L¨!Ñ,Ô,¨qÒ0Ð0Ø—’‘”Ô&ˆà�‰7�WÑ€DØ�$‰;˜Ñ €DØ˜&‘€Jà˜˜2˜tÐ$ q¨!¨R°Ð&6Ð7€LØ��z <°Ð7Ð7r   c                 óª  — d| |z   z  } || ¦  «        } ||¦  «        } ||¦  «        }d|| z
  z  |d|z  z   |z   z  }dt          || z
  ¦  «        z  t           ||¦  «        ¦  «        dt           ||¦  «        ¦  «        z  z   t           ||¦  «        ¦  «        z   z  dz  }	d|| z
  z  ||z   z  }
dt           ||
|z
  ¦  «        ¦  «        z  }|||	fS )z(
    Composite trapezoid quadrature
    r(   g      Ð?r…   g¼‰Ø—²Ò¬<gUUUUUUÕ?)rG   r›   )rÊ   rË   r>   r¿   Úx3Úf1r~   Úf3rñ   Ú	round_errrî   rÍ   s               r   r§   r§   ã  s  € ð 
ˆb�2‰g‰€BØ	
ˆˆ2‰Œ€BØ	
ˆˆ2‰Œ€BØ	
ˆˆ2‰Œ€Bà	��b‘Ñ	˜R ! B¡$™Y¨™^Ñ	,€Bà•s˜2 ™7‘|”|Ñ#¥u¨Y¨Y°r©]¬]Ñ';Ô';Ø)*­5°°¸2±´Ñ+?Ô+?Ñ)?ñ(@å).¨y¨y¸©}¬}Ñ)=Ô)=ñ(>ñ ?àAFñG€Ið 
��R‘‰˜B ™GÑ	$€BØ
•�i�i  R¡Ñ(Ô(Ñ)Ô)Ñ
)€CØˆs�IÐÐr   é	   rˆ   c                 óš  — dgt          |¦  «        z  }d| |z   z  }d|| z
  z  }	d}
d}t          t          |¦  «        ¦  «        D ]C} |||	||         z  z   ¦  «        }|||<   ||         }|
||z  z  }
||t          |¦  «        z  z  }ŒDd}t          t          |¦  «        ¦  «        D ]}|||         |d|z  dz            z  z  }Œd}|
dz  }t          t          |¦  «        ¦  «        D ]&}|||         t          ||         |z
  ¦  «        z  z  }Œ't           ||
|z
  |	z  ¦  «        ¦  «        }t           |||	z  ¦  «        ¦  «        }|dk    r"|dk    r|t	          dd|z  |z  d	z  ¦  «        z  }t
          j        j        }t           |d
|z  |	z  |z  ¦  «        ¦  «        }|t
          j        j        k    rt          ||¦  «        }|	|
z  ||fS )z*
    Generic Gauss-Kronrod quadrature
    r;   r(   r…   r'   g       @r   g      ð?éÈ   g      ø?é2   )	r   r°   rG   r›   r.   r,   r-   Úepsilonrƒ   )rº   r»   r>   r¿   r6   ÚwÚvÚfvrí   ÚhÚs_kÚs_k_absÚiÚffÚvvÚs_gÚs_k_dabsÚy0rÍ   ÚdabsÚepsrú   s                         r   Ú_quadrature_gkr  û  s  € ð
 ˆ�s�1‰vŒv‰€Bàˆq�1‰u‰€AØˆq�1‰u‰€Að €CØ€GÝ•3�q‘6”6‰]Œ]ð 	 ð 	 ˆØˆQˆq�1�Q�q”T‘6‰z‰]Œ]ˆØˆˆ1‰àˆqŒTˆð 	ˆr�B‰w‰ˆà�2�˜B™œ‘<Ñˆˆð €CÝ•3�q‘6”6‰]Œ]ð "ð "ˆØˆq�Œt�b˜˜1™˜q™”kÑ!Ñ!ˆˆð €HØ	ˆs‰€BÝ•3�q‘6”6‰]Œ]ð +ð +ˆà�A�a”D�3˜r !œu r™z™?œ?Ñ*Ñ*ˆˆõ �	�	˜3 ™9¨™/Ñ*Ô*Ñ
+Ô
+€CÝ��˜8 a™<Ñ(Ô(Ñ)Ô)€DØˆq‚y€y�S˜A’X�XØ•S˜˜s S™y¨4Ñ/°#Ñ5Ñ6Ô6Ñ6ˆå
Œ.Ô
 €CÝ�i�i  S¡¨1¡¨wÑ 6Ñ7Ô7Ñ8Ô8€Ià•3”>Ô%Ò%Ð%Ý�#�yÑ!Ô!ˆàˆs‰7�C˜Ð"Ð"r   c           	      ó8   — d}d}d}t          | ||||||¦  «        S )z9
    Gauss-Kronrod 21 quadrature with error estimate
    )gå*'ilÜï?gØò*>*ï?gÆ°¤ÙÃí?gó²œ^™®ë?gblútuüè?g˜á�"¹½å?g Á@â?gÜj	À¼Û?g7¡^)U×Ò?gzâ‘xPÃ?r   gzâ‘xPÃ¿g7¡^)U×Ò¿gÜj	À¼Û¿g Á@â¿g˜á�"¹½å¿gblútuüè¿gó²œ^™®ë¿gÆ°¤ÙÃí¿gØò*>*ï¿gå*'ilÜï¿)
çÜb‹_±?çåïxÈ8!Ã?ç1¼ �Ì?çþ›Uzª;Ñ?çïÖpÞéÒ?r  r  r  r  r  )ç?ˆÊÛ[ó‡?çB@©¤v« ?ç¢™÷¬?çå"7ÕÌ5³?ç‰³ÜÝ×·?ç��¨ýË ¼?çÞ-]�+�¿?çÔHiÑ&>Á?çla{FÂ?çµòoéÂ?gÑ|+!Ã?r  r  r  r  r  r  r  r  r  r  ©r  ©rº   r»   r>   r¿   r6   r   r  s          r   r¥   r¥   .  s3   € ð
	/€Að.		.€Að	.€Aõ, ˜!˜Q  9¨a°°AÑ6Ô6Ð6r   é   c           	      ó8   — d}d}d}t          | ||||||¦  «        S )z9
    Gauss-Kronrod 15 quadrature with error estimate
    )g±	M� ºï?g)b|Ž_î?g>»¹'ø¬ë?gÖ¡ã›Ÿºç?g$ú�:Áâ?gbýñ]ùÙ?gw.‰²˜Ê?r;   gw.‰²˜Ê¿gbýñ]ùÙ¿g$ú�:Áâ¿gÖ¡ã›Ÿºç¿g>»¹'ø¬ë¿g)b|Ž_î¿g±	M� ºï¿)çWm‚Ÿö’À?çD†=q±æÑ?ç=+ãNçoØ?g¦/<à×¿Ú?r%  r$  r#  )çptÕg[|—?çÄa{ªÍ&°?çÆH£„Óº?çÁèFí Â?ç\}äfò¡Å?ç±Èah]È?çØœìËÛ*Ê?g	‡�OÐÊ?r,  r+  r*  r)  r(  r'  r&  r  r   s          r   r¦   r¦   r  s3   € ð
	/€Að"	.€Að	.€Aõ  ˜!˜Q  9¨a°°AÑ6Ô6Ð6r   é   )	ri   rj   rk   rl   rm   r'   NNF)r,   r­   r®   Úcollectionsrè   Únumpyr4   Úscipy._lib._utilr   r   Úscipy._lib._array_apir   ÚOrderedDictr   r$   rD   rL   rU   rW   r¡   r³   r§   rt   r«   r  r¥   r¦   rB   r   r   ú<module>r3     s÷  ðØ 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ð$ð $ð $ð $ð $ˆkÔ%ñ $ô $ð $ð"+ð +ð +ð +ð +ñ +ô +ð +ð8ð ð ð ð ñ ô ð ð.ð ð ðð ð ð	,ð 	,ð 	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð €˜ÐÑÔØGLØOTðWàðWð Wð Wð Wñ ÔðWðt
8ð 8ð 8ð:ð ð ð( $)Ð Ô  Ø!"Ð Ô ð0#ð 0#ð 0#ðf>7ð >7ð >7ðB Ð Ô ð/7ð /7ð /7ðd Ð Ô Ð Ð r   