§
    fŠtj3 ã                   ó  — d dl mZ d dlmZ d dlmZmZmZmZ	 d dl
mc mZ d dlmZ d dlmc 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mZmZ d dlZ dd	l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' dd
l(m)Z)m*Z*m+Z+ ddl,m-Z-  G d„ de"¦  «        Z. e.d¬¦  «        Z/ G d„ de.¦  «        Z0 e0dd¬¦  «        Z1 G d„ de"¦  «        Z2 e2d¬¦  «        Z3 G d„ de"¦  «        Z4 e4d¬¦  «        Z5 G d„ de"¦  «        Z6 e6d¬¦  «        Z7 G d„ de"¦  «        Z8 e8ddd ¬!¦  «        Z9 G d"„ d#e"¦  «        Z: e:d$¬¦  «        Z; G d%„ d&e"¦  «        Z< e<d'¬¦  «        Z= G d(„ d)e"¦  «        Z> e>dd*d+¬!¦  «        Z? G d,„ d-e"¦  «        Z@ e@d.d/¬0¦  «        ZA G d1„ d2e"¦  «        ZB eBd d3d4¬!¦  «        ZC G d5„ d6e"¦  «        ZD eDd7d d8¬9¦  «        ZE G d:„ d;e"¦  «        ZF eFd<d=¬0¦  «        ZG G d>„ d?e"¦  «        ZH eHdd@dA¬!¦  «        ZI G dB„ dCe"¦  «        ZJ eJddDdE¬!¦  «        ZK G dF„ dGe"¦  «        ZL eLe jM         dHdI¬!¦  «        ZN G dJ„ dKe"¦  «        ZO eOdLdMdN¬O¦  «        ZPdhdP„ZQdidR„ZRdjdS„ZSePeOcZTZUeQ V                    eTeU¦  «        eP_Q        eR V                    eTeU¦  «        eP_R        eS V                    eTeU¦  «        eP_S         G dT„ dUe'¦  «        ZW G dV„ dWe"¦  «        ZX eXe jM         dXdY¬!¦  «        ZY G dZ„ d[e"¦  «        ZZ eZd\d¬]¦  «        Z[ G d^„ d_e"¦  «        Z\ G d`„ dae\¦  «        Z] e]dbdc¬0¦  «        Z^ G dd„ dee\¦  «        Z_ e_dfdg¬0¦  «        Z` ea eb¦   «          c                    ¦   «          d                    ¦   «         ¦  «        Ze e#eee"¦  «        \  ZfZgefegz   ZhdS )ké    )Úpartial)Úspecial)ÚentrÚ	logsumexpÚbetalnÚgammalnN)Úrng_integers)Úinterp1d)
ÚfloorÚceilÚlogÚexpÚsqrtÚlog1pÚexpm1ÚtanhÚcoshÚsinhé   )Úrv_discreteÚget_distribution_namesÚ_vectorize_rvs_over_shapesÚ
_ShapeInfoÚ_isintegralÚrv_discrete_frozen)Ú_PyFishersNCHypergeometricÚ_PyWalleniusNCHypergeometricÚ_PyStochasticLib3)Ú_poisson_binomc                   ó^   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zdd„Zd„ ZdS )Ú	binom_gena2  A binomial discrete random variable.

    %(before_notes)s

    Notes
    -----
    The probability mass function for `binom` is:

    .. math::

       f(k) = \binom{n}{k} p^k (1-p)^{n-k}

    for :math:`k \in \{0, 1, \dots, n\}`, :math:`0 \leq p \leq 1`

    `binom` takes :math:`n` and :math:`p` as shape parameters,
    where :math:`p` is the probability of a single success
    and :math:`1-p` is the probability of a single failure.

    This distribution uses routines from the Boost Math C++ library for
    the computation of the ``pmf``, ``cdf``, ``sf``, ``ppf`` and ``isf``
    methods. [1]_

    %(after_notes)s

    References
    ----------
    .. [1] The Boost Developers. "Boost C++ Libraries". https://www.boost.org/.

    %(example)s

    See Also
    --------
    hypergeom, nbinom, nhypergeom

    c                 ób   — t          dddt          j        fd¦  «        t          dddd¦  «        gS ©	NÚnTr   ©TFÚpF©r   r   ©TT©r   ÚnpÚinf©Úselfs    úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/stats/_discrete_distns.pyÚ_shape_infozbinom_gen._shape_info@   ó4   € Ý˜3  q­"¬& k°=ÑAÔAÝ˜3  v¨|Ñ<Ô<ð>ð 	>ó    Nc                 ó0   — |                      |||¦  «        S ©N)Úbinomial©r-   r$   r&   ÚsizeÚrandom_states        r.   Ú_rvszbinom_gen._rvsD   s   € Ø×$Ò$ Q¨¨4Ñ0Ô0Ð0r1   c                 óJ   — |dk    t          |¦  «        z  |dk    z  |dk    z  S ©Nr   r   ©r   ©r-   r$   r&   s      r.   Ú	_argcheckzbinom_gen._argcheckG   s)   € Ø�Q’�+ a™.œ.Ñ(¨A°ªFÑ3°q¸A²vÑ>Ð>r1   c                 ó   — | j         |fS r3   ©Úar<   s      r.   Ú_get_supportzbinom_gen._get_supportJ   s   € ØŒv�qˆyÐr1   c                 óú   — t          |¦  «        }t          |dz   ¦  «        t          |dz   ¦  «        t          ||z
  dz   ¦  «        z   z
  }|t          j        ||¦  «        z   t          j        ||z
  | ¦  «        z   S ©Nr   )r   Úgamlnr   ÚxlogyÚxlog1py)r-   Úxr$   r&   ÚkÚcombilns         r.   Ú_logpmfzbinom_gen._logpmfM   sl   € Ý�!‰HŒHˆÝ˜˜1™‘:”:¥ q¨¡s¡¤­e°A°a±C¸±E©l¬lÑ!:Ñ;ˆØ�œ q¨!Ñ,Ô,Ñ,­w¬¸qÀ¹sÀQÀBÑ/GÔ/GÑGÐGr1   c                 ó.   — t          j        |||¦  «        S r3   )ÚscuÚ
_binom_pmf©r-   rG   r$   r&   s       r.   Ú_pmfzbinom_gen._pmfR   s   € åŒ~˜a  AÑ&Ô&Ð&r1   c                 óL   — t          |¦  «        }t          j        |||¦  «        S r3   )r   rL   Ú
_binom_cdf©r-   rG   r$   r&   rH   s        r.   Ú_cdfzbinom_gen._cdfV   ó!   € Ý�!‰HŒHˆÝŒ~˜a  AÑ&Ô&Ð&r1   c                 óL   — t          |¦  «        }t          j        |||¦  «        S r3   )r   rL   Ú	_binom_sfrR   s        r.   Ú_sfzbinom_gen._sfZ   s!   € Ý�!‰HŒHˆÝŒ}˜Q  1Ñ%Ô%Ð%r1   c                 ó.   — t          j        |||¦  «        S r3   )rL   Ú
_binom_isfrN   s       r.   Ú_isfzbinom_gen._isf^   ó   € ÝŒ~˜a  AÑ&Ô&Ð&r1   c                 ó.   — t          j        |||¦  «        S r3   )rL   Ú
_binom_ppf©r-   Úqr$   r&   s       r.   Ú_ppfzbinom_gen._ppfa   r[   r1   Úmvc                 óx  — ||z  }||t          j        |¦  «        z  z
  }d\  }}d|v rO|t          j        |¦  «        z
  }t          j        ||z  ¦  «        }	t          j        |	¦  «        }
d|z  |	z  }|
|z
  }d|v r:|t          j        |¦  «        z
  }||z  }t          j        |¦  «        }
d|z  }|
|z
  }||||fS )N©NNÚsç       @rH   ç      @)r*   Úsquarer   Ú
reciprocal)r-   r$   r&   ÚmomentsÚmuÚvarÚg1Úg2ÚpqÚnpq_sqrtÚt1Út2Únpqs                r.   Ú_statszbinom_gen._statsd   sÐ   € Ø�‰UˆØ�1•r”y ‘|”|Ñ#Ñ#ˆØ‰ˆˆBØ�'ˆ>ˆ>Ø•R”Y˜q‘\”\Ñ!ˆBÝ”w˜q 2™v‘”ˆHÝ”˜xÑ(Ô(ˆBØ˜‘'˜XÑ%ˆBØ�b‘ˆBØ�'ˆ>ˆ>Ø•R”Y˜q‘\”\Ñ!ˆBØ�b‘&ˆCÝ”˜sÑ#Ô#ˆBØ�Q‘ˆBØ�b‘ˆBØ�3˜˜BˆÐr1   c                 ó¤   — t           j        d|dz   …         }|                      |||¦  «        }t          j        t	          |¦  «        d¬¦  «        S )Nr   r   ©Úaxis)r*   Úr_rO   Úsumr   )r-   r$   r&   rH   Úvalss        r.   Ú_entropyzbinom_gen._entropyv   sE   € ÝŒE�!�A˜‘E�'ŒNˆØ�yŠy˜˜A˜qÑ!Ô!ˆÝŒv•d˜4‘j”j qÐ)Ñ)Ô)Ð)r1   rc   ©ra   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r/   r8   r=   rA   rJ   rO   rS   rW   rZ   r`   rs   rz   © r1   r.   r!   r!      sà   € € € € € ð"ð "ðF>ð >ð >ð1ð 1ð 1ð 1ð?ð ?ð ?ðð ð ðHð Hð Hð
'ð 'ð 'ð'ð 'ð 'ð&ð &ð &ð'ð 'ð 'ð'ð 'ð 'ðð ð ð ð$*ð *ð *ð *ð *r1   r!   Úbinom)Únamec                   ó\   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ ZdS )Úbernoulli_gena  A Bernoulli discrete random variable.

    %(before_notes)s

    Notes
    -----
    The probability mass function for `bernoulli` is:

    .. math::

       f(k) = \begin{cases}1-p  &\text{if } k = 0\\
                           p    &\text{if } k = 1\end{cases}

    for :math:`k` in :math:`\{0, 1\}`, :math:`0 \leq p \leq 1`

    `bernoulli` takes :math:`p` as shape parameter,
    where :math:`p` is the probability of a single success
    and :math:`1-p` is the probability of a single failure.

    %(after_notes)s

    %(example)s

    c                 ó(   — t          dddd¦  «        gS ©Nr&   Fr'   r(   ©r   r,   s    r.   r/   zbernoulli_gen._shape_info˜   ó   € Ý˜3  v¨|Ñ<Ô<Ð=Ð=r1   Nc                 ó@   — t                                | d|||¬¦  «        S )Nr   ©r6   r7   )r!   r8   ©r-   r&   r6   r7   s       r.   r8   zbernoulli_gen._rvs›   s   € Ý�~Š~˜d A q¨tÀ,ˆ~ÑOÔOÐOr1   c                 ó   — |dk    |dk    z  S r:   r�   ©r-   r&   s     r.   r=   zbernoulli_gen._argcheckž   s   € Ø�Q’˜1 š6Ñ"Ð"r1   c                 ó   — | j         | j        fS r3   )r@   ÚbrŽ   s     r.   rA   zbernoulli_gen._get_support¡   s   € àŒv�t”vˆ~Ðr1   c                 ó:   — t                                |d|¦  «        S rC   )r‚   rJ   ©r-   rG   r&   s      r.   rJ   zbernoulli_gen._logpmf¥   s   € Ý�}Š}˜Q  1Ñ%Ô%Ð%r1   c                 ó:   — t                                |d|¦  «        S rC   )r‚   rO   r’   s      r.   rO   zbernoulli_gen._pmf¨   s   € õ �zŠz˜!˜Q Ñ"Ô"Ð"r1   c                 ó:   — t                                |d|¦  «        S rC   )r‚   rS   r’   s      r.   rS   zbernoulli_gen._cdf­   ó   € Ý�zŠz˜!˜Q Ñ"Ô"Ð"r1   c                 ó:   — t                                |d|¦  «        S rC   )r‚   rW   r’   s      r.   rW   zbernoulli_gen._sf°   s   € Ý�yŠy˜˜A˜qÑ!Ô!Ð!r1   c                 ó:   — t                                |d|¦  «        S rC   )r‚   rZ   r’   s      r.   rZ   zbernoulli_gen._isf³   r•   r1   c                 ó:   — t                                |d|¦  «        S rC   )r‚   r`   )r-   r_   r&   s      r.   r`   zbernoulli_gen._ppf¶   r•   r1   c                 ó8   — t                                d|¦  «        S rC   )r‚   rs   rŽ   s     r.   rs   zbernoulli_gen._stats¹   s   € Ý�|Š|˜A˜qÑ!Ô!Ð!r1   c                 óF   — t          |¦  «        t          d|z
  ¦  «        z   S rC   )r   rŽ   s     r.   rz   zbernoulli_gen._entropy¼   s   € Ý�A‰wŒw�˜a ™c™œÑ"Ð"r1   rc   r|   r�   r1   r.   r…   r…      sÛ   € € € € € ðð ð0>ð >ð >ðPð Pð Pð Pð#ð #ð #ðð ð ð&ð &ð &ð#ð #ð #ð
#ð #ð #ð"ð "ð "ð#ð #ð #ð#ð #ð #ð"ð "ð "ð#ð #ð #ð #ð #r1   r…   Ú	bernoulli)r�   rƒ   c                   ó@   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	dd
„Z
dS )Úbetabinom_gena  A beta-binomial discrete random variable.

    %(before_notes)s

    Notes
    -----
    The beta-binomial distribution is a binomial distribution with a
    probability of success `p` that follows a beta distribution.

    The probability mass function for `betabinom` is:

    .. math::

       f(k) = \binom{n}{k} \frac{B(k + a, n - k + b)}{B(a, b)}

    for :math:`k \in \{0, 1, \dots, n\}`, :math:`n \geq 0`, :math:`a > 0`,
    :math:`b > 0`, where :math:`B(a, b)` is the beta function.

    `betabinom` takes :math:`n`, :math:`a`, and :math:`b` as shape parameters.

    %(after_notes)s

    References
    ----------
    .. [1] https://en.wikipedia.org/wiki/Beta-binomial_distribution

    .. versionadded:: 1.4.0

    See Also
    --------
    beta, binom

    %(example)s

    c                 ó´   — t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        gS ©	Nr$   Tr   r%   r@   F©FFr�   r)   r,   s    r.   r/   zbetabinom_gen._shape_infoç   óS   € Ý˜3  q­"¬& k°=ÑAÔAÝ˜3 ¨­2¬6 {°NÑCÔCÝ˜3 ¨­2¬6 {°NÑCÔCðEð 	Er1   Nc                 ó^   — |                      |||¦  «        }|                     |||¦  «        S r3   )Úbetar4   ©r-   r$   r@   r�   r6   r7   r&   s          r.   r8   zbetabinom_gen._rvsì   s1   € Ø×Ò˜a  DÑ)Ô)ˆØ×$Ò$ Q¨¨4Ñ0Ô0Ð0r1   c                 ó
   — d|fS ©Nr   r�   ©r-   r$   r@   r�   s       r.   rA   zbetabinom_gen._get_supportð   ó   € Ø�!ˆtˆr1   c                 óJ   — |dk    t          |¦  «        z  |dk    z  |dk    z  S r¦   r;   r§   s       r.   r=   zbetabinom_gen._argcheckó   ó)   € Ø�Q’�+ a™.œ.Ñ(¨A°ªEÑ2°a¸!²eÑ<Ð<r1   c                 óÔ   — t          |¦  «        }t          |dz   ¦  «         t          ||z
  dz   |dz   ¦  «        z
  }|t          ||z   ||z
  |z   ¦  «        z   t          ||¦  «        z
  S rC   )r   r   r   ©r-   rG   r$   r@   r�   rH   rI   s          r.   rJ   zbetabinom_gen._logpmfö   sg   € Ý�!‰HŒHˆÝ�q˜1‘u‘:”:�+¥ q¨1¡u¨q¡y°!°a±%Ñ 8Ô 8Ñ8ˆØ�  A¡ q¨1¡u¨q¡yÑ1Ô1Ñ1µF¸1¸a±L´LÑ@Ð@r1   c                 óL   — t          |                      ||||¦  «        ¦  «        S r3   ©r   rJ   ©r-   rG   r$   r@   r�   s        r.   rO   zbetabinom_gen._pmfû   ó"   € Ý�4—<’<  1 a¨Ñ+Ô+Ñ,Ô,Ð,r1   ra   c                 óJ  — |||z   z  }d|z
  }||z  }|||z   |z   z  |z  |z  ||z   dz   z  }d\  }	}
d|v r7dt          |¦  «        z  }	|	||z   d|z  z   ||z
  z  z  }	|	||z   dz   ||z   z  z  }	d|v r®||z                        |j        ¦  «        }
|
||z   dz
  d|z  z   z  }
|
d|z  |z  |dz
  z  z  }
|
d|dz  z  z  }
|
d|z  |z  |z  d|z
  z  z  }
|
d	|z  |z  |dz  z  z  }
|
||z   dz  d|z   |z   z  z  }
|
||z  |z  ||z   dz   z  ||z   dz   z  ||z   |z   z  z  }
|
dz  }
|||	|
fS )
Nr   rc   rd   ç      ð?é   rH   é   é   é   )r   ÚastypeÚdtype)r-   r$   r@   r�   ri   Úe_pÚe_qrj   rk   rl   rm   s              r.   rs   zbetabinom_gen._statsþ   sµ  € Ø�1�q‘5‰kˆØ�#‰gˆØ�‰WˆØ�1�q‘5˜1‘9‰o Ñ# cÑ)¨Q°©U°Q©YÑ7ˆØ‰ˆˆBØ�'ˆ>ˆ>Ø•t˜C‘y”y‘ˆBØ�1�q‘5˜1˜q™5‘= Q¨¡UÑ+Ñ+ˆBØ�1�q‘5˜1‘9  Q¡Ñ'Ñ'ˆBØ�'ˆ>ˆ>Ø�a‘%—’ ¤	Ñ*Ô*ˆBØ�1�q‘5˜1‘9˜q 1™uÑ$Ñ%ˆBØ�!�a‘%˜!‘)˜q 1™uÑ%Ñ%ˆBØ�!�a˜1‘f‘*ÑˆBØ�!�c‘'˜A‘+ ‘/ Q¨¡UÑ+Ñ+ˆBØ�"�s‘(˜S‘. 1¨¡6Ñ)Ñ)ˆBØ�1�q‘5˜Q‘, ! a¡%¨!¡)Ñ,Ñ,ˆBØ�1�q‘5˜1‘9  A¡¨¡	Ñ*¨a°!©e°a©iÑ8¸AÀ¹EÀA¹IÑFÑGˆBØ�!‰GˆBØ�3˜˜BˆÐr1   rc   r{   )r}   r~   r   r€   r/   r8   rA   r=   rJ   rO   rs   r�   r1   r.   r�   r�   Ã   s˜   € € € € € ð"ð "ðFEð Eð Eð
1ð 1ð 1ð 1ðð ð ð=ð =ð =ðAð Að Að
-ð -ð -ðð ð ð ð ð r1   r�   Ú	betabinomc                   óV   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ ZdS )Ú
nbinom_gena×  A negative binomial discrete random variable.

    %(before_notes)s

    Notes
    -----
    Negative binomial distribution describes a sequence of i.i.d. Bernoulli
    trials, repeated until a predefined, non-random number of successes occurs.

    The probability mass function of the number of failures for `nbinom` is:

    .. math::

       f(k) = \binom{k+n-1}{n-1} p^n (1-p)^k

    for :math:`k \ge 0`, :math:`0 < p \leq 1`

    `nbinom` takes :math:`n` and :math:`p` as shape parameters where :math:`n`
    is the number of successes, :math:`p` is the probability of a single
    success, and :math:`1-p` is the probability of a single failure.

    Another common parameterization of the negative binomial distribution is
    in terms of the mean number of failures :math:`\mu` to achieve :math:`n`
    successes. The mean :math:`\mu` is related to the probability of success
    as

    .. math::

       p = \frac{n}{n + \mu}

    The number of successes :math:`n` may also be specified in terms of a
    "dispersion", "heterogeneity", or "aggregation" parameter :math:`\alpha`,
    which relates the mean :math:`\mu` to the variance :math:`\sigma^2`,
    e.g. :math:`\sigma^2 = \mu + \alpha \mu^2`. Regardless of the convention
    used for :math:`\alpha`,

    .. math::

       p &= \frac{\mu}{\sigma^2} \\
       n &= \frac{\mu^2}{\sigma^2 - \mu}

    This distribution uses routines from the Boost Math C++ library for
    the computation of the ``pmf``, ``cdf``, ``sf``, ``ppf``, ``isf``
    and ``stats`` methods. [1]_

    %(after_notes)s

    References
    ----------
    .. [1] The Boost Developers. "Boost C++ Libraries". https://www.boost.org/.

    %(example)s

    See Also
    --------
    hypergeom, binom, nhypergeom

    c                 ób   — t          dddt          j        fd¦  «        t          dddd¦  «        gS r#   r)   r,   s    r.   r/   znbinom_gen._shape_infoS  r0   r1   Nc                 ó0   — |                      |||¦  «        S r3   )Únegative_binomialr5   s        r.   r8   znbinom_gen._rvsW  s   € Ø×-Ò-¨a°°DÑ9Ô9Ð9r1   c                 ó*   — |dk    |dk    z  |dk    z  S r:   r�   r<   s      r.   r=   znbinom_gen._argcheckZ  s   € Ø�A’˜!˜aš%Ñ  A¨¢FÑ+Ð+r1   c                 ó.   — t          j        |||¦  «        S r3   )rL   Ú_nbinom_pmfrN   s       r.   rO   znbinom_gen._pmf]  s   € åŒ˜q ! QÑ'Ô'Ð'r1   c                 óÄ   — t          ||z   ¦  «        t          |dz   ¦  «        z
  t          |¦  «        z
  }||t          |¦  «        z  z   t          j        || ¦  «        z   S rC   )rD   r   r   rF   )r-   rG   r$   r&   Úcoeffs        r.   rJ   znbinom_gen._logpmfa  sS   € Ý�a˜‘c‘
”
�U 1 Q¡3™ZœZÑ'­%°©(¬(Ñ2ˆØ�q�˜Q™œ‘xÑ¥'¤/°!°a°RÑ"8Ô"8Ñ8Ð8r1   c                 óL   — t          |¦  «        }t          j        |||¦  «        S r3   )r   rL   Ú_nbinom_cdfrR   s        r.   rS   znbinom_gen._cdfe  s!   € Ý�!‰HŒHˆÝŒ˜q ! QÑ'Ô'Ð'r1   c                 óx  — t          |¦  «        }t          j        |||¦  «        \  }}}|                      |||¦  «        }|dk    }d„ }|}t          j        d¬¦  «        5   |||         ||         ||         ¦  «        ||<   t          j        ||          ¦  «        || <   d d d ¦  «         n# 1 swxY w Y   |S )Nç      à?c                 ó`   — t          j        t          j        | dz   |d|z
  ¦  «         ¦  «        S rC   )r*   r   r   Úbetainc)rH   r$   r&   s      r.   Úf1znbinom_gen._logcdf.<locals>.f1n  s+   € Ý”8�Wœ_¨Q°©U°A°q¸1±uÑ=Ô=Ð=Ñ>Ô>Ð>r1   Úignore)Údivide)r   r*   Úbroadcast_arraysrS   Úerrstater   )	r-   rG   r$   r&   rH   ÚcdfÚcondrÌ   Úlogcdfs	            r.   Ú_logcdfznbinom_gen._logcdfi  s  € Ý�!‰HŒHˆÝÔ% a¨¨AÑ.Ô.‰ˆˆ1ˆaØ�iŠi˜˜1˜aÑ Ô ˆØ�SŠyˆð	?ð 	?ð 	?ð ˆÝŒ[ Ð)Ñ)Ô)ð 	/ð 	/Ø˜2˜a œg q¨¤w°°$´Ñ8Ô8ˆF�4‰LÝœF 3¨ u¤:Ñ.Ô.ˆF�D�5‰Mð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð ˆs   Á!AB/Â/B3Â6B3c                 óL   — t          |¦  «        }t          j        |||¦  «        S r3   )r   rL   Ú
_nbinom_sfrR   s        r.   rW   znbinom_gen._sfx  rT   r1   c                 óŒ   — t          j        d¬¦  «        5  t          j        |||¦  «        cd d d ¦  «         S # 1 swxY w Y   d S ©NrÍ   ©Úover)r*   rÐ   rL   Ú_nbinom_isfrN   s       r.   rZ   znbinom_gen._isf|  óŠ   € ÝŒ[˜hÐ'Ñ'Ô'ð 	,ð 	,Ý”? 1 a¨Ñ+Ô+ð	,ð 	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ó   –9¹=Á =c                 óŒ   — t          j        d¬¦  «        5  t          j        |||¦  «        cd d d ¦  «         S # 1 swxY w Y   d S rØ   )r*   rÐ   rL   Ú_nbinom_ppfr^   s       r.   r`   znbinom_gen._ppf€  rÜ   rÝ   c                 ó¦   — t          j        ||¦  «        t          j        ||¦  «        t          j        ||¦  «        t          j        ||¦  «        fS r3   )rL   Ú_nbinom_meanÚ_nbinom_varianceÚ_nbinom_skewnessÚ_nbinom_kurtosis_excessr<   s      r.   rs   znbinom_gen._stats„  sL   € åÔ˜Q Ñ"Ô"ÝÔ   AÑ&Ô&ÝÔ   AÑ&Ô&ÝÔ'¨¨1Ñ-Ô-ð	
ð 	
r1   rc   )r}   r~   r   r€   r/   r8   r=   rO   rJ   rS   rÔ   rW   rZ   r`   rs   r�   r1   r.   r½   r½     sÉ   € € € € € ð9ð 9ðt>ð >ð >ð:ð :ð :ð :ð,ð ,ð ,ð(ð (ð (ð9ð 9ð 9ð(ð (ð (ðð ð ð'ð 'ð 'ð,ð ,ð ,ð,ð ,ð ,ð
ð 
ð 
ð 
ð 
r1   r½   Únbinomc                   ó:   — e Zd ZdZd„ Zd
d„Zd„ Zd„ Zd„ Zdd	„Z	dS )Úbetanbinom_genaK  A beta-negative-binomial discrete random variable.

    %(before_notes)s

    Notes
    -----
    The beta-negative-binomial distribution is a negative binomial
    distribution with a probability of success `p` that follows a
    beta distribution.

    The probability mass function for `betanbinom` is:

    .. math::

       f(k) = \binom{n + k - 1}{k} \frac{B(a + n, b + k)}{B(a, b)}

    for :math:`k \ge 0`, :math:`n \geq 0`, :math:`a > 0`,
    :math:`b > 0`, where :math:`B(a, b)` is the beta function.

    `betanbinom` takes :math:`n`, :math:`a`, and :math:`b` as shape parameters.

    %(after_notes)s

    References
    ----------
    .. [1] https://en.wikipedia.org/wiki/Beta_negative_binomial_distribution

    .. versionadded:: 1.12.0

    See Also
    --------
    betabinom : Beta binomial distribution

    %(example)s

    c                 ó´   — t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        gS rŸ   r)   r,   s    r.   r/   zbetanbinom_gen._shape_infoµ  r¡   r1   Nc                 ó^   — |                      |||¦  «        }|                     |||¦  «        S r3   )r£   rÀ   r¤   s          r.   r8   zbetanbinom_gen._rvsº  s1   € Ø×Ò˜a  DÑ)Ô)ˆØ×-Ò-¨a°°DÑ9Ô9Ð9r1   c                 óJ   — |dk    t          |¦  «        z  |dk    z  |dk    z  S r¦   r;   r§   s       r.   r=   zbetanbinom_gen._argcheck¾  rª   r1   c                 óÌ   — t          |¦  «        }t          j        ||z   ¦  «         t          ||dz   ¦  «        z
  }|t          ||z   ||z   ¦  «        z   t          ||¦  «        z
  S rC   )r   r*   r   r   r¬   s          r.   rJ   zbetanbinom_gen._logpmfÁ  s]   € Ý�!‰HŒHˆÝ”6˜!˜a™%‘=”=�.¥6¨!¨Q°©UÑ#3Ô#3Ñ3ˆØ�  A¡ q¨1¡uÑ-Ô-Ñ-µ°q¸!±´Ñ<Ð<r1   c                 óL   — t          |                      ||||¦  «        ¦  «        S r3   r®   r¯   s        r.   rO   zbetanbinom_gen._pmfÆ  r°   r1   ra   c                 óˆ  — d„ }t          j        |dk    |||f|t          j        ¬¦  «        }d„ }t          j        |dk    |||f|t          j        ¬¦  «        }d\  }}	d„ }
d|v r)t          j        |d	k    |||f|
t          j        ¬¦  «        }d
„ }d|v r)t          j        |dk    |||f|t          j        ¬¦  «        }	||||	fS )Nc                 ó   — | |z  |dz
  z  S ©Nr²   r�   ©r$   r@   r�   s      r.   Úmeanz#betanbinom_gen._stats.<locals>.meanÌ  s   € Ø�q‘5˜A ™FÑ#Ð#r1   r   ©Ú
fill_valuec                 óN   — | |z  | |z   dz
  z  ||z   dz
  z  |dz
  |dz
  dz  z  z  S )Nr²   re   r�   rð   s      r.   rk   z"betanbinom_gen._stats.<locals>.varÏ  sA   € Ø˜‘E˜Q ™U R™ZÑ(¨A°©E°B©JÑ7Ø˜B™ 1 r¡6¨B¡,Ñ.ñ0ð 1r1   r³   rc   c                 ó’   — d| z  |z   dz
  d|z  |z   dz
  z  |dz
  z  t          | |z  | |z   dz
  z  ||z   dz
  z  |dz
  z  ¦  «        z  S )Nr³   r²   ç      @re   ©r   rð   s      r.   Úskewz#betanbinom_gen._stats.<locals>.skewÔ  sq   € Ø˜‘U˜Q‘Y ‘^¨¨A©°©	°B©Ñ7Ø˜2‘vñÝ!% a¨!¡e¨q°1©u°r©zÑ&:¸aÀ!¹eÀb¹jÑ&IØ˜2‘vñ'ñ " ô " ñ ð !r1   rd   rµ   c                 óz  — |dz
  }|dz
  dz  |dz  |d|z  dz
  z  z   d|dz
  z  |z  z   z  d| dz  z  |dz   |dz  z  |dz   |dz
  z  |z  z   d|dz
  dz  z  z   z  z   d|dz
  z  | z  |dz   |dz  z  |dz   |dz
  z  |z  z   d|dz
  dz  z  z   z  z   }|d	z
  |dz
  z  |z  | z  ||z   dz
  z  || z   dz
  z  }||z  |z  dz
  S )
Nre   r²   r´   rf   rö   ç      @r³   rµ   g      @r�   )r$   r@   r�   ÚtermÚterm_2Údenominators         r.   Úkurtosisz'betanbinom_gen._stats.<locals>.kurtosisÚ  sN  € Ø˜‘FˆDØ˜2‘v ‘l a¨¡e¨a°1°q±5¸2±:Ñ.>Ñ&>Ø˜a "™f™¨Ñ)ñ'*ñ +à˜Q ™U™
 q¨2¡v°°B±Ñ&6¸!¸b¹&Ø˜R™ñ:!Ø#$ñ:%ñ '%Ø')¨Q°©V°a©KÑ'7ñ'8ñ 9ñ9ð ˜Q ™V™ qÑ(Ø˜b™& A r¡EÑ)¨Q°©V¸¸B¹Ñ,?À!Ñ,CÑCØ˜a "™f r™\Ñ)ñ*ñ+ñ	+ˆFð  ™F q¨2¡vÑ.°Ñ2°QÑ6Ø !™e b™jñ*Ø-.°©U°R©Zñ9ˆKð ˜&‘= ;Ñ.°Ñ3Ð3r1   rH   é   ©ÚxpxÚapply_wherer*   r+   )r-   r$   r@   r�   ri   rñ   rj   rk   rl   rm   rø   rþ   s               r.   rs   zbetanbinom_gen._statsÉ  sý   € ð	$ð 	$ð 	$åŒ_˜Q šU Q¨¨1 I¨tÅÄÐGÑGÔGˆð	1ð 	1ð 	1õ Œo˜a !še a¨¨A Y°ÅÄÐGÑGÔGˆØ‰ˆˆBð	!ð 	!ð 	!ð �'ˆ>ˆ>Ý”  Q¢¨¨A¨q¨	°4ÅBÄFÐKÑKÔKˆBð	4ð 	4ð 	4ð �'ˆ>ˆ>Ý”  Q¢¨¨A¨q¨	°8ÍÌÐOÑOÔOˆBØ�3˜˜BˆÐr1   rc   r{   )
r}   r~   r   r€   r/   r8   r=   rJ   rO   rs   r�   r1   r.   rç   rç   �  s†   € € € € € ð#ð #ðHEð Eð Eð
:ð :ð :ð :ð=ð =ð =ð=ð =ð =ð
-ð -ð -ð!ð !ð !ð !ð !ð !r1   rç   Ú
betanbinomc                   óV   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ ZdS )Úgeom_gena5  A geometric discrete random variable.

    %(before_notes)s

    Notes
    -----
    The probability mass function for `geom` is:

    .. math::

        f(k) = (1-p)^{k-1} p

    for :math:`k \ge 1`, :math:`0 < p \leq 1`

    `geom` takes :math:`p` as shape parameter,
    where :math:`p` is the probability of a single success
    and :math:`1-p` is the probability of a single failure.

    Note that when drawing random samples, the probability of observations that exceed
    ``np.iinfo(np.int64).max`` increases rapidly as $p$ decreases below $10^{-17}$. For
    $p < 10^{-20}$, almost all observations would exceed the maximum ``int64``; however,
    the output dtype is always ``int64``, so these values are clipped to the maximum.

    %(after_notes)s

    See Also
    --------
    planck

    %(example)s

    c                 ó(   — t          dddd¦  «        gS r‡   rˆ   r,   s    r.   r/   zgeom_gen._shape_info  r‰   r1   Nc                 ó    — |                      ||¬¦  «        }t          j        |j        ¦  «        j        }t          j        |dk     ||¦  «        S )N©r6   r   )Ú	geometricr*   Úiinfor¸   ÚmaxÚwhere)r-   r&   r6   r7   ÚresÚmax_ints         r.   r8   zgeom_gen._rvs  sH   € Ø×$Ò$ Q¨TÐ$Ñ2Ô2ˆõ ”(˜3œ9Ñ%Ô%Ô)ˆÝŒx˜˜aš ¨#Ñ.Ô.Ð.r1   c                 ó   — |dk    |dk    z  S ©Nr   r   r�   rŽ   s     r.   r=   zgeom_gen._argcheck  s   € Ø�Q’˜1˜qš5Ñ!Ð!r1   c                 ó>   — t          j        d|z
  |dz
  ¦  «        |z  S rC   )r*   Úpower©r-   rH   r&   s      r.   rO   zgeom_gen._pmf  s!   € ÝŒx˜˜!™˜Q˜q™SÑ!Ô! AÑ%Ð%r1   c                 óT   — t          j        |dz
  | ¦  «        t          |¦  «        z   S rC   )r   rF   r   r  s      r.   rJ   zgeom_gen._logpmf"  s%   € ÝŒ˜q 1™u q bÑ)Ô)­C°©F¬FÑ2Ð2r1   c                 ób   — t          |¦  «        }t          t          | ¦  «        |z  ¦  «         S r3   )r   r   r   ©r-   rG   r&   rH   s       r.   rS   zgeom_gen._cdf%  s*   € Ý�!‰HŒHˆÝ•e˜Q˜B‘i”i ‘kÑ"Ô"Ð"Ð"r1   c                 óR   — t          j        |                      ||¦  «        ¦  «        S r3   )r*   r   Ú_logsfr’   s      r.   rW   zgeom_gen._sf)  s    € ÝŒv�d—k’k ! QÑ'Ô'Ñ(Ô(Ð(r1   c                 óF   — t          |¦  «        }|t          | ¦  «        z  S r3   )r   r   r  s       r.   r  zgeom_gen._logsf,  s   € Ý�!‰HŒHˆØ•˜�r‘”‰{Ðr1   c                 óØ   — t          t          | ¦  «        t          | ¦  «        z  ¦  «        }|                      |dz
  |¦  «        }t          j        ||k    |dk    z  |dz
  |¦  «        S r  )r   r   rS   r*   r  )r-   r_   r&   ry   Útemps        r.   r`   zgeom_gen._ppf0  s`   € Ý•E˜1˜"‘I”I¥ q b¡	¤	Ñ)Ñ*Ô*ˆØ�yŠy˜˜a™ Ñ#Ô#ˆÝŒx˜ š t¨a¢xÑ0°$°q±&¸$Ñ?Ô?Ð?r1   c                 ó–   — d|z  }d|z
  }||z  |z  }d|z
  t          |¦  «        z  }t          j        g d¢|¦  «        d|z
  z  }||||fS )Nr²   re   )r   iúÿÿÿr´   )r   r*   Úpolyval)r-   r&   rj   Úqrrk   rl   rm   s          r.   rs   zgeom_gen._stats5  sa   € Ø�‰UˆØ�‰UˆØ�1‰f�q‰jˆØ�!‰e•t˜B‘x”xÑˆÝŒZ˜
˜
˜
 AÑ&Ô&¨¨A©Ñ.ˆØ�3˜˜BˆÐr1   c                 ój   — t          j        |¦  «         t          j        | ¦  «        d|z
  z  |z  z
  S rï   )r*   r   r   rŽ   s     r.   rz   zgeom_gen._entropy=  s/   € Ý”�q‘	”	ˆz�BœH a R™LœL¨C°©EÑ2°QÑ6Ñ6Ð6r1   rc   )r}   r~   r   r€   r/   r8   r=   rO   rJ   rS   rW   r  r`   rs   rz   r�   r1   r.   r  r  ð  sÌ   € € € € € ðð ðB>ð >ð >ð/ð /ð /ð /ð"ð "ð "ð&ð &ð &ð3ð 3ð 3ð#ð #ð #ð)ð )ð )ðð ð ð@ð @ð @ð
ð ð ð7ð 7ð 7ð 7ð 7r1   r  ÚgeomzA geometric)r@   rƒ   Úlongnamec                   ó\   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ ZdS )Úhypergeom_gena	  A hypergeometric discrete random variable.

    The hypergeometric distribution models drawing objects from a bin.
    `M` is the total number of objects, `n` is total number of Type I objects.
    The random variate represents the number of Type I objects in `N` drawn
    without replacement from the total population.

    %(before_notes)s

    Notes
    -----
    The symbols used to denote the shape parameters (`M`, `n`, and `N`) are not
    universally accepted.  See the Examples for a clarification of the
    definitions used here.

    The probability mass function is defined as,

    .. math:: p(k, M, n, N) = \frac{\binom{n}{k} \binom{M - n}{N - k}}
                                   {\binom{M}{N}}

    for :math:`k \in [\max(0, N - M + n), \min(n, N)]`, where the binomial
    coefficients are defined as,

    .. math:: \binom{n}{k} \equiv \frac{n!}{k! (n - k)!}.

    This distribution uses routines from the Boost Math C++ library for
    the computation of the ``pmf``, ``cdf``, ``sf`` and ``stats`` methods. [1]_

    %(after_notes)s

    References
    ----------
    .. [1] The Boost Developers. "Boost C++ Libraries". https://www.boost.org/.

    Examples
    --------
    >>> import numpy as np
    >>> from scipy.stats import hypergeom
    >>> import matplotlib.pyplot as plt

    Suppose we have a collection of 20 animals, of which 7 are dogs.  Then if
    we want to know the probability of finding a given number of dogs if we
    choose at random 12 of the 20 animals, we can initialize a frozen
    distribution and plot the probability mass function:

    >>> [M, n, N] = [20, 7, 12]
    >>> rv = hypergeom(M, n, N)
    >>> x = np.arange(0, n+1)
    >>> pmf_dogs = rv.pmf(x)

    >>> fig = plt.figure()
    >>> ax = fig.add_subplot(111)
    >>> ax.plot(x, pmf_dogs, 'bo')
    >>> ax.vlines(x, 0, pmf_dogs, lw=2)
    >>> ax.set_xlabel('# of dogs in our group of chosen animals')
    >>> ax.set_ylabel('hypergeom PMF')
    >>> plt.show()

    Instead of using a frozen distribution we can also use `hypergeom`
    methods directly.  To for example obtain the cumulative distribution
    function, use:

    >>> prb = hypergeom.cdf(x, M, n, N)

    And to generate random numbers:

    >>> R = hypergeom.rvs(M, n, N, size=10)

    See Also
    --------
    nhypergeom, binom, nbinom

    c                 ó´   — t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        gS )NÚMTr   r%   r$   ÚNr)   r,   s    r.   r/   zhypergeom_gen._shape_infoŽ  óS   € Ý˜3  q­"¬& k°=ÑAÔAÝ˜3  q­"¬& k°=ÑAÔAÝ˜3  q­"¬& k°=ÑAÔAðCð 	Cr1   Nc                 ó:   — |                      |||z
  ||¬¦  «        S ©Nr  )Úhypergeometric)r-   r%  r$   r&  r6   r7   s         r.   r8   zhypergeom_gen._rvs“  s#   € Ø×*Ò*¨1¨a°©c°1¸4Ð*Ñ@Ô@Ð@r1   c                 ób   — t          j        |||z
  z
  d¦  «        t          j        ||¦  «        fS r¦   ©r*   ÚmaximumÚminimum)r-   r%  r$   r&  s       r.   rA   zhypergeom_gen._get_support–  s-   € ÝŒz˜!˜Q˜q™S™' 1Ñ%Ô%¥r¤z°!°QÑ'7Ô'7Ð7Ð7r1   c                 ó²   — |dk    |dk    z  |dk    z  }|||k    ||k    z  z  }|t          |¦  «        t          |¦  «        z  t          |¦  «        z  z  }|S r¦   r;   )r-   r%  r$   r&  rÒ   s        r.   r=   zhypergeom_gen._argcheck™  s_   € Ø�A’˜!˜qš&Ñ! Q¨!¢VÑ,ˆØ��a’˜A šFÑ#Ñ#ˆØ•˜A‘”¥¨Q¡¤Ñ/µ+¸a±.´.Ñ@Ñ@ˆØˆr1   c                 ó6  — ||}}||z
  }t          |dz   d¦  «        t          |dz   d¦  «        z   t          ||z
  dz   |dz   ¦  «        z   t          |dz   ||z
  dz   ¦  «        z
  t          ||z
  dz   ||z
  |z   dz   ¦  «        z
  t          |dz   d¦  «        z
  }|S rC   ©r   )	r-   rH   r%  r$   r&  ÚtotÚgoodÚbadÚresults	            r.   rJ   zhypergeom_gen._logpmfŸ  s·   € Ø�qˆTˆØ�D‰jˆÝ˜˜a™ Ñ#Ô#¥f¨S°©U°AÑ&6Ô&6Ñ6½ÀÀAÁÀaÁÈÈ1ÉÑ9MÔ9MÑMÝ˜˜1™˜d 1™f Q™hÑ'Ô'ñ(Ý*0°°1±°Q±¸¸A¹¸a¹À¹	Ñ*BÔ*BñCå˜˜Q™ Ñ"Ô"ñ#ˆð ˆr1   c                 ó0   — t          j        ||||¦  «        S r3   )rL   Ú_hypergeom_pmf©r-   rH   r%  r$   r&  s        r.   rO   zhypergeom_gen._pmf§  ó   € ÝÔ! ! Q¨¨1Ñ-Ô-Ð-r1   c                 ó0   — t          j        ||||¦  «        S r3   )rL   Ú_hypergeom_cdfr8  s        r.   rS   zhypergeom_gen._cdfª  r9  r1   c                 óx  — d|z  d|z  d|z  }}}||z
  }||dz   z  d|z  ||z
  z  z
  d|z  |z  z
  }||dz
  |z  |z  z  }|d|z  |z  ||z
  z  |z  d|z  dz
  z  z  }|||z  ||z
  z  |z  |dz
  z  |dz
  z  z  }t          j        |||¦  «        t          j        |||¦  «        t          j        |||¦  «        |fS )Nr²   r   rf   rú   r´   re   rö   )rL   Ú_hypergeom_meanÚ_hypergeom_varianceÚ_hypergeom_skewness)r-   r%  r$   r&  Úmrm   s         r.   rs   zhypergeom_gen._stats­  s  € Ø�q‘&˜"˜q™& " q¡&ˆaˆ1ˆØ�‰Eˆð �!�a‘%‰[˜2 ™6 Q¨¡UÑ+Ñ+¨b°1©f°q©jÑ8ˆØ
ˆq�1‰u˜‰k˜A‰oÑˆØ
ˆb�1‰f�q‰j˜A ™EÑ" QÑ&¨"¨q©&°1©*Ñ5Ñ5ˆØ
ˆa�!‰e�q˜1‘u‰o Ñ! Q¨¡VÑ,°°B±Ñ7Ñ7ˆåÔ  1 aÑ(Ô(ÝÔ# A q¨!Ñ,Ô,ÝÔ# A q¨!Ñ,Ô,Øð	
ð 	
r1   c                 óÎ   — t           j        |||z
  z
  t          ||¦  «        dz   …         }|                      ||||¦  «        }t          j        t          |¦  «        d¬¦  «        S )Nr   r   ru   )r*   rw   ÚminÚpmfrx   r   )r-   r%  r$   r&  rH   ry   s         r.   rz   zhypergeom_gen._entropy¾  sY   € ÝŒE�!�q˜1‘u‘+�c ! Q™iœi¨!™mÐ+Ô,ˆØ�xŠx˜˜1˜a Ñ#Ô#ˆÝŒv•d˜4‘j”j qÐ)Ñ)Ô)Ð)r1   c                 ó0   — t          j        ||||¦  «        S r3   )rL   Ú_hypergeom_sfr8  s        r.   rW   zhypergeom_gen._sfÃ  s   € ÝÔ   A q¨!Ñ,Ô,Ð,r1   c                 óÞ  — g }t          t          j        ||||¦  «        Ž D ]¹\  }}}}	|dz   |dz   z  |dz
  |	dz
  z  k     rG|                     t	          t          |                      ||||	¦  «        ¦  «         ¦  «        ¦  «         Œft          j        |dz   |	dz   ¦  «        }
|                     t          |  	                    |
|||	¦  «        ¦  «        ¦  «         Œºt          j
        |¦  «        S )NrÉ   r   )Úzipr*   rÏ   Úappendr   r   rÓ   Úaranger   rJ   Úasarray©r-   rH   r%  r$   r&  r  Úquantr2  r3  ÚdrawÚk2s              r.   r  zhypergeom_gen._logsfÆ  sî   € ØˆÝ&)­2Ô+>¸qÀ!ÀQÈÑ+JÔ+JÐ&Kð 	Ið 	IÑ"ˆE�3˜˜dØ˜‘  c¡	Ñ*¨d°S©j¸TÀC¹ZÑ-HÒHÐHà—
’
�5¥# d§k¢k°%¸¸dÀDÑ&IÔ&IÑ"JÔ"JÐ!JÑKÔKÑLÔLÐLÐLõ ”Y˜u q™y¨$°©(Ñ3Ô3�Ø—
’
�9 T§\¢\°"°c¸4ÀÑ%FÔ%FÑGÔGÑHÔHÐHÐHÝŒz˜#‰ŒÐr1   c                 óØ  — g }t          t          j        ||||¦  «        Ž D ]¶\  }}}}	|dz   |dz   z  |dz
  |	dz
  z  k    rG|                     t	          t          |                      ||||	¦  «        ¦  «         ¦  «        ¦  «         Œft          j        d|dz   ¦  «        }
|                     t          |  	                    |
|||	¦  «        ¦  «        ¦  «         Œ·t          j
        |¦  «        S )NrÉ   r   r   )rG  r*   rÏ   rH  r   r   ÚlogsfrI  r   rJ   rJ  rK  s              r.   rÔ   zhypergeom_gen._logcdfÒ  sê   € ØˆÝ&)­2Ô+>¸qÀ!ÀQÈÑ+JÔ+JÐ&Kð 	Ið 	IÑ"ˆE�3˜˜dØ˜‘  c¡	Ñ*¨d°S©j¸TÀC¹ZÑ-HÒHÐHà—
’
�5¥# d§j¢j°¸¸TÀ4Ñ&HÔ&HÑ"IÔ"IÐ!IÑJÔJÑKÔKÐKÐKõ ”Y˜q %¨!¡)Ñ,Ô,�Ø—
’
�9 T§\¢\°"°c¸4ÀÑ%FÔ%FÑGÔGÑHÔHÐHÐHÝŒz˜#‰ŒÐr1   rc   )r}   r~   r   r€   r/   r8   rA   r=   rJ   rO   rS   rs   rz   rW   r  rÔ   r�   r1   r.   r#  r#  D  sá   € € € € € ðHð HðRCð Cð Cð
Að Að Að Að8ð 8ð 8ðð ð ðð ð ð.ð .ð .ð.ð .ð .ð
ð 
ð 
ð"*ð *ð *ð
-ð -ð -ð
ð 
ð 
ð
ð 
ð 
ð 
ð 
r1   r#  Ú	hypergeomc                   ó>   — e Zd ZdZd„ Zd„ Zd„ Zd
d„Zd„ Zd„ Z	d	„ Z
dS )Únhypergeom_genab  A negative hypergeometric discrete random variable.

    Consider a box containing :math:`M` balls:, :math:`n` red and
    :math:`M-n` blue. We randomly sample balls from the box, one
    at a time and *without* replacement, until we have picked :math:`r`
    blue balls. `nhypergeom` is the distribution of the number of
    red balls :math:`k` we have picked.

    %(before_notes)s

    Notes
    -----
    The symbols used to denote the shape parameters (`M`, `n`, and `r`) are not
    universally accepted. See the Examples for a clarification of the
    definitions used here.

    The probability mass function is defined as,

    .. math:: f(k; M, n, r) = \frac{{{k+r-1}\choose{k}}{{M-r-k}\choose{n-k}}}
                                   {{M \choose n}}

    for :math:`k \in [0, n]`, :math:`n \in [0, M]`, :math:`r \in [0, M-n]`,
    and the binomial coefficient is:

    .. math:: \binom{n}{k} \equiv \frac{n!}{k! (n - k)!}.

    It is equivalent to observing :math:`k` successes in :math:`k+r-1`
    samples with :math:`k+r`'th sample being a failure. The former
    can be modelled as a hypergeometric distribution. The probability
    of the latter is simply the number of failures remaining
    :math:`M-n-(r-1)` divided by the size of the remaining population
    :math:`M-(k+r-1)`. This relationship can be shown as:

    .. math:: NHG(k;M,n,r) = HG(k;M,n,k+r-1)\frac{(M-n-(r-1))}{(M-(k+r-1))}

    where :math:`NHG` is probability mass function (PMF) of the
    negative hypergeometric distribution and :math:`HG` is the
    PMF of the hypergeometric distribution.

    %(after_notes)s

    Examples
    --------
    >>> import numpy as np
    >>> from scipy.stats import nhypergeom
    >>> import matplotlib.pyplot as plt

    Suppose we have a collection of 20 animals, of which 7 are dogs.
    Then if we want to know the probability of finding a given number
    of dogs (successes) in a sample with exactly 12 animals that
    aren't dogs (failures), we can initialize a frozen distribution
    and plot the probability mass function:

    >>> M, n, r = [20, 7, 12]
    >>> rv = nhypergeom(M, n, r)
    >>> x = np.arange(0, n+2)
    >>> pmf_dogs = rv.pmf(x)

    >>> fig = plt.figure()
    >>> ax = fig.add_subplot(111)
    >>> ax.plot(x, pmf_dogs, 'bo')
    >>> ax.vlines(x, 0, pmf_dogs, lw=2)
    >>> ax.set_xlabel('# of dogs in our group with given 12 failures')
    >>> ax.set_ylabel('nhypergeom PMF')
    >>> plt.show()

    Instead of using a frozen distribution we can also use `nhypergeom`
    methods directly.  To for example obtain the probability mass
    function, use:

    >>> prb = nhypergeom.pmf(x, M, n, r)

    And to generate random numbers:

    >>> R = nhypergeom.rvs(M, n, r, size=10)

    To verify the relationship between `hypergeom` and `nhypergeom`, use:

    >>> from scipy.stats import hypergeom, nhypergeom
    >>> M, n, r = 45, 13, 8
    >>> k = 6
    >>> nhypergeom.pmf(k, M, n, r)
    0.06180776620271643
    >>> hypergeom.pmf(k, M, n, k+r-1) * (M - n - (r-1)) / (M - (k+r-1))
    0.06180776620271644

    See Also
    --------
    hypergeom, binom, nbinom

    References
    ----------
    .. [1] Negative Hypergeometric Distribution on Wikipedia
           https://en.wikipedia.org/wiki/Negative_hypergeometric_distribution

    .. [2] Negative Hypergeometric Distribution from
           http://www.math.wm.edu/~leemis/chart/UDR/PDFs/Negativehypergeometric.pdf

    c                 ó´   — t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        gS )Nr%  Tr   r%   r$   Úrr)   r,   s    r.   r/   znhypergeom_gen._shape_infoG  r'  r1   c                 ó
   — d|fS r¦   r�   )r-   r%  r$   rU  s       r.   rA   znhypergeom_gen._get_supportL  r¨   r1   c                 ó¦   — |dk    ||k    z  |dk    z  |||z
  k    z  }|t          |¦  «        t          |¦  «        z  t          |¦  «        z  z  }|S r¦   r;   )r-   r%  r$   rU  rÒ   s        r.   r=   znhypergeom_gen._argcheckO  sU   € Ø�Q’˜1 š6Ñ" a¨1¢fÑ-°°a¸±c²Ñ:ˆØ•˜A‘”¥¨Q¡¤Ñ/µ+¸a±.´.Ñ@Ñ@ˆØˆr1   Nc                 óH   ‡ — t           ˆ fd„¦   «         } ||||||¬¦  «        S )Nc                 ó\  •— ‰                      | ||¦  «        \  }}t          j        ||dz   ¦  «        }‰                     || ||¦  «        }t	          ||dd¬¦  «        }	 |	|                     |¬¦  «        ¦  «                             t          ¦  «        }
|€|
                     ¦   «         S |
S )Nr   ÚnextÚextrapolate)Úkindró   r  )	Úsupportr*   rI  rÑ   r
   Úuniformr·   ÚintÚitem)r%  r$   rU  r6   r7   r@   r�   ÚksrÑ   ÚppfÚrvsr-   s              €r.   Ú_rvs1z"nhypergeom_gen._rvs.<locals>._rvs1V  s¦   ø€ ð —<’<  1 aÑ(Ô(‰DˆAˆqÝ”˜1˜a ™cÑ"Ô"ˆBØ—(’(˜2˜q ! QÑ'Ô'ˆCÝ˜3 ¨¸MÐJÑJÔJˆCØ�#�l×*Ò*°Ð*Ñ5Ô5Ñ6Ô6×=Ò=½cÑBÔBˆCØˆ|Ø—x’x‘z”zÐ!ØˆJr1   r‹   ©r   )r-   r%  r$   rU  r6   r7   rd  s   `      r.   r8   znhypergeom_gen._rvsT  sD   ø€ å	#ð		ð 		ð 		ð 		ñ 
$Ô	#ð		ð ˆu�Q˜˜1 4°lÐCÑCÔCÐCr1   c                 óR   — t          j        |dk    |dk    z  ||||fd„ d¬¦  «        S )Nr   c                 ó"  — t          | dz   |¦  «         t          | |z   d¦  «        z   t          || z
  dz   ||z
  |z
  dz   ¦  «        z
  t          ||z
  | z
  dz   d¦  «        z   t          |dz   ||z
  dz   ¦  «        z   t          |dz   d¦  «        z
  S rC   r1  )rH   r%  r$   rU  s       r.   ú<lambda>z(nhypergeom_gen._logpmf.<locals>.<lambda>g  sŸ   € Ý˜˜1™˜a‘.”.�¥6¨!¨A©#¨q¡>¤>Ñ1Ý˜!˜A™#˜a™%  1¡ Q¡ q¡Ñ)Ô)ñ*Ý,2°1°Q±3°q±5¸±7¸AÑ,>Ô,>ñ?å˜!˜A™#˜q ™s 1™uÑ%Ô%ñ&å(.¨q°©s°A©¬ñ7ð r1   ç        rò   )r  r  ©r-   rH   r%  r$   rU  s        r.   rJ   znhypergeom_gen._logpmfd  sD   € ÝŒØ�!ŠV˜˜QšÑ ! Q¨¨1 ð8ð 8ð ðñ ô ð 	r1   c                 óL   — t          |                      ||||¦  «        ¦  «        S r3   r®   rj  s        r.   rO   znhypergeom_gen._pmfm  s$   € õ �4—<’<  1 a¨Ñ+Ô+Ñ,Ô,Ð,r1   c                 óª   — d|z  d|z  d|z  }}}||z  ||z
  dz   z  }||dz   z  |z  ||z
  dz   ||z
  dz   z  z  d|||z
  dz   z  z
  z  }d\  }}||||fS )Nr²   r   r³   rc   r�   )r-   r%  r$   rU  rj   rk   rl   rm   s           r.   rs   znhypergeom_gen._statsr  sŠ   € ð �Q‘$˜˜1™˜b ™dˆaˆ1ˆØˆq‰S�A�a‘C˜‘E‰]ˆà��1‘‰g�a‰i˜A˜a™C ™E A a¡C¨¡E™?Ñ+¨q°1¸¸!¹¸A¹±;©Ñ?ˆð ‰ˆˆBØ�3˜˜BˆÐr1   rc   )r}   r~   r   r€   r/   rA   r=   r8   rJ   rO   rs   r�   r1   r.   rS  rS  â  s–   € € € € € ðbð bðHCð Cð Cð
ð ð ðð ð ð
Dð Dð Dð Dð ð ð ð-ð -ð -ð
ð ð ð ð r1   rS  Ú
nhypergeomc                   ó8   — e Zd ZdZd„ Zd	d„Zd„ Zd„ Zd„ Zd„ Z	dS )
Ú
logser_genaÔ  A Logarithmic (Log-Series, Series) discrete random variable.

    %(before_notes)s

    Notes
    -----
    The probability mass function for `logser` is:

    .. math::

        f(k) = - \frac{p^k}{k \log(1-p)}

    for :math:`k \ge 1`, :math:`0 < p < 1`

    `logser` takes :math:`p` as shape parameter,
    where :math:`p` is the probability of a single success
    and :math:`1-p` is the probability of a single failure.

    %(after_notes)s

    %(example)s

    c                 ó(   — t          dddd¦  «        gS r‡   rˆ   r,   s    r.   r/   zlogser_gen._shape_info�  r‰   r1   Nc                 ó0   — |                      ||¬¦  «        S r)  )Ú	logseriesrŒ   s       r.   r8   zlogser_gen._rvs   s   € ð ×%Ò% a¨dÐ%Ñ3Ô3Ð3r1   c                 ó   — |dk    |dk     z  S r:   r�   rŽ   s     r.   r=   zlogser_gen._argcheck¥  s   € Ø�A’˜!˜aš%Ñ Ð r1   c                 óf   — t          j        ||¦  «         dz  |z  t          j        | ¦  «        z  S rï   )r*   r  r   r   r  s      r.   rO   zlogser_gen._pmf¨  s/   € å”˜˜A‘”ˆ Ñ$ qÑ(­7¬=¸!¸Ñ+<Ô+<Ñ<Ð<r1   c                 ó˜   — d}t          j        |dz   ||¦  «         t          j        |dz   |¦  «        z  t          j        | ¦  «        z  S )Ng0Žä.ÿ++r   )r   rË   r£   r*   r   )r-   rH   r&   Útinys       r.   rW   zlogser_gen._sf¬  sJ   € Øˆõ
 ”  !¡ T¨1Ñ-Ô-Ð-µ´¸Q¸q¹SÀ$Ñ0GÔ0GÑGÍ"Ì(ÐTUÐSUÉ,Ì,ÑVÐVr1   c                 óº  — t          j        | ¦  «        }||dz
  z  |z  }| |z  |dz
  dz  z  }|||z  z
  }| |z  d|z   z  d|z
  dz  z  }|d|z  |z  z
  d|dz  z  z   }|t          j        |d¦  «        z  }| |z  d|dz
  dz  z  d|z  |dz
  dz  z  z
  d|z  |z  |dz
  dz  z  z   z  }	|	d|z  |z  z
  d|z  |z  |z  z   d|dz  z  z
  }
|
|dz  z  dz
  }||||fS )	Nr²   r³   rµ   ç      ø?r   r´   rÿ   rö   )r   r   r*   r  )r-   r&   rU  rj   Úmu2prk   Úmu3pÚmu3rl   Úmu4pÚmu4rm   s               r.   rs   zlogser_gen._stats´  s@  € ÝŒM˜1˜"ÑÔˆØ�!�c‘'‰]˜QÑˆØˆr�A‰v˜˜S™ 1™Ñ$ˆØ�R˜‘U‰lˆØˆr�A‰v˜˜Q™Ñ 3¨¡7¨Q¡,Ñ.ˆØ�Q�r‘T˜$‘YÑ  2 q¡5¡Ñ(ˆØ•2”8˜C Ñ%Ô%Ñ%ˆàˆr�A‰vØ�1�Q‘3˜‘(‰N˜Q˜q™S A¨¡E¨A¡:Ñ-Ñ-°°!±°A±¸¸1¹¸q¹Ñ0@Ñ@ñBˆà�Q�t‘V˜B‘YÑ  4¡¨¡¨2¡Ñ-°°"°a±%±Ñ7ˆØ�3˜‘6‰\˜CÑˆØ�3˜˜BˆÐr1   rc   )
r}   r~   r   r€   r/   r8   r=   rO   rW   rs   r�   r1   r.   ro  ro  „  s€   € € € € € ðð ð0>ð >ð >ð4ð 4ð 4ð 4ð
!ð !ð !ð=ð =ð =ðWð Wð Wðð ð ð ð r1   ro  ÚlogserzA logarithmicc                   óJ   — e Zd ZdZd„ Zd„ Zdd„Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ ZdS )Úpoisson_gena›  A Poisson discrete random variable.

    %(before_notes)s

    Notes
    -----
    The probability mass function for `poisson` is:

    .. math::

        f(k) = \exp(-\mu) \frac{\mu^k}{k!}

    for :math:`k \ge 0`.

    `poisson` takes :math:`\mu \geq 0` as shape parameter.
    When :math:`\mu = 0`, the ``pmf`` method
    returns ``1.0`` at quantile :math:`k = 0`.

    %(after_notes)s

    %(example)s

    c                 ó@   — t          dddt          j        fd¦  «        gS )Nrj   Fr   r%   r)   r,   s    r.   r/   zpoisson_gen._shape_infoà  s   € Ý˜4 ¨­B¬F¨°]ÑCÔCÐDÐDr1   c                 ó   — |dk    S r¦   r�   )r-   rj   s     r.   r=   zpoisson_gen._argcheckä  s   € Ø�QŠwˆr1   Nc                 ó.   — |                      ||¦  «        S r3   ©Úpoisson)r-   rj   r6   r7   s       r.   r8   zpoisson_gen._rvsç  s   € Ø×#Ò# B¨Ñ-Ô-Ð-r1   c                 ó\   — t          j        ||¦  «        t          |dz   ¦  «        z
  |z
  }|S rC   )r   rE   rD   )r-   rH   rj   ÚPks       r.   rJ   zpoisson_gen._logpmfê  s,   € ÝŒ]˜1˜bÑ!Ô!¥E¨!¨a©%¡L¤LÑ0°2Ñ5ˆØˆ	r1   c                 óH   — t          |                      ||¦  «        ¦  «        S r3   r®   )r-   rH   rj   s      r.   rO   zpoisson_gen._pmfî  s   € å�4—<’<  2Ñ&Ô&Ñ'Ô'Ð'r1   c                 óJ   — t          |¦  «        }t          j        ||¦  «        S r3   )r   r   Úpdtr©r-   rG   rj   rH   s       r.   rS   zpoisson_gen._cdfò  s   € Ý�!‰HŒHˆÝŒ|˜A˜rÑ"Ô"Ð"r1   c                 óJ   — t          |¦  «        }t          j        ||¦  «        S r3   )r   r   Úpdtrcr‹  s       r.   rW   zpoisson_gen._sfö  s   € Ý�!‰HŒHˆÝŒ}˜Q Ñ#Ô#Ð#r1   c                 óÔ   — t          t          j        ||¦  «        ¦  «        }t          j        |dz
  d¦  «        }t          j        ||¦  «        }t          j        ||k    ||¦  «        S r  )r   r   Úpdtrikr*   r-  rŠ  r  )r-   r_   rj   ry   Úvals1r  s         r.   r`   zpoisson_gen._ppfú  sY   € Ý•G”N 1 bÑ)Ô)Ñ*Ô*ˆÝ”
˜4 !™8 QÑ'Ô'ˆÝŒ|˜E 2Ñ&Ô&ˆÝŒx˜ š	 5¨$Ñ/Ô/Ð/r1   c                 óÒ   — |}t          j        |¦  «        }|dk    }t          j        ||d„ t           j        ¬¦  «        }t          j        ||d„ t           j        ¬¦  «        }||||fS )Nr   c                 ó&   — t          d| z  ¦  «        S rï   r÷   ©rG   s    r.   rh  z$poisson_gen._stats.<locals>.<lambda>  s   € ½¸SÀ¹U¹¼€ r1   rò   c                 ó   — d| z  S rï   r�   r“  s    r.   rh  z$poisson_gen._stats.<locals>.<lambda>  s
   € ¸¸A¹€ r1   )r*   rJ  r  r  r+   )r-   rj   rk   ÚtmpÚ
mu_nonzerorl   rm   s          r.   rs   zpoisson_gen._stats   sg   € ØˆÝŒj˜‰nŒnˆØ˜1’Wˆ
ÝŒ_˜Z¨Ð.CÐ.CÕPRÔPVÐWÑWÔWˆÝŒ_˜Z¨¨o¨oÍ"Ì&ÐQÑQÔQˆØ�3˜˜BˆÐr1   rc   )r}   r~   r   r€   r/   r=   r8   rJ   rO   rS   rW   r`   rs   r�   r1   r.   r€  r€  Ç  s­   € € € € € ðð ð0Eð Eð Eðð ð ð.ð .ð .ð .ðð ð ð(ð (ð (ð#ð #ð #ð$ð $ð $ð0ð 0ð 0ðð ð ð ð r1   r€  r…  z	A Poisson)rƒ   r!  c                   óP   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
dd
„Zd„ Zd„ Zd	S )Ú
planck_gena  A Planck discrete exponential random variable.

    %(before_notes)s

    Notes
    -----
    The probability mass function for `planck` is:

    .. math::

        f(k) = (1-\exp(-\lambda)) \exp(-\lambda k)

    for :math:`k \ge 0` and :math:`\lambda > 0`.

    `planck` takes :math:`\lambda` as shape parameter. The Planck distribution
    can be written as a geometric distribution (`geom`) with
    :math:`p = 1 - \exp(-\lambda)` shifted by ``loc = -1``.

    %(after_notes)s

    See Also
    --------
    geom

    %(example)s

    c                 ó@   — t          dddt          j        fd¦  «        gS )NÚlambda_Fr   r    r)   r,   s    r.   r/   zplanck_gen._shape_info(  s   € Ý˜9 e¨aµ´¨[¸.ÑIÔIÐJÐJr1   c                 ó   — |dk    S r¦   r�   )r-   rš  s     r.   r=   zplanck_gen._argcheck+  s   € Ø˜Š{Ðr1   c                 óL   — t          | ¦  «         t          | |z  ¦  «        z  S r3   )r   r   )r-   rH   rš  s      r.   rO   zplanck_gen._pmf.  s$   € Ý�w�h‘”Ð¥ W H¨Q¡J¡¤Ñ/Ð/r1   c                 óN   — t          |¦  «        }t          | |dz   z  ¦  «         S rC   )r   r   ©r-   rG   rš  rH   s       r.   rS   zplanck_gen._cdf1  s(   € Ý�!‰HŒHˆÝ�w�h  !¡‘nÑ%Ô%Ð%Ð%r1   c                 óH   — t          |                      ||¦  «        ¦  «        S r3   )r   r  )r-   rG   rš  s      r.   rW   zplanck_gen._sf5  s   € Ý�4—;’;˜q 'Ñ*Ô*Ñ+Ô+Ð+r1   c                 ó2   — t          |¦  «        }| |dz   z  S rC   ©r   rž  s       r.   r  zplanck_gen._logsf8  s   € Ý�!‰HŒHˆØˆx˜˜1™‰~Ðr1   c                 óî   — t          d|z  t          | ¦  «        z  dz
  ¦  «        } |dz
  j        |                      |¦  «        Ž }|                      ||¦  «        }t          j        ||k    ||¦  «        S )Nç      ð¿r   )r   r   ÚcliprA   rS   r*   r  )r-   r_   rš  ry   r�  r  s         r.   r`   zplanck_gen._ppf<  sp   € Ý�D˜‘L¥5¨!¨¡9¤9Ñ,¨QÑ.Ñ/Ô/ˆØ��a‘” × 1Ò 1°'Ñ :Ô :Ð<ˆØ�yŠy˜ Ñ(Ô(ˆÝŒx˜ š	 5¨$Ñ/Ô/Ð/r1   Nc                 óX   — t          | ¦  «         }|                     ||¬¦  «        dz
  S )Nr  r²   )r   r	  )r-   rš  r6   r7   r&   s        r.   r8   zplanck_gen._rvsB  s0   € å�G�8‰_Œ_ÐˆØ×%Ò% a¨dÐ%Ñ3Ô3°cÑ9Ð9r1   c                 óÎ   — dt          |¦  «        z  }t          | ¦  «        t          | ¦  «        dz  z  }dt          |dz  ¦  «        z  }ddt          |¦  «        z  z   }||||fS )Nr   r³   re   rÿ   )r   r   r   )r-   rš  rj   rk   rl   rm   s         r.   rs   zplanck_gen._statsG  si   € Ø�u�W‰~Œ~ÑˆÝ�7�(‰mŒm�U G 8™_œ_¨qÑ0Ñ0ˆØ�t�G˜C‘KÑ Ô Ñ ˆØˆq•�g‘”‰ÑˆØ�3˜˜BˆÐr1   c                 óp   — t          | ¦  «         }|t          | ¦  «        z  |z  t          |¦  «        z
  S r3   )r   r   r   )r-   rš  ÚCs      r.   rz   zplanck_gen._entropyN  s5   € Ý�G�8‰_Œ_ÐˆØ•s˜G˜8‘}”}Ñ$ QÑ&­¨Q©¬Ñ/Ð/r1   rc   )r}   r~   r   r€   r/   r=   rO   rS   rW   r  r`   r8   rs   rz   r�   r1   r.   r˜  r˜    s¼   € € € € € ðð ð6Kð Kð Kðð ð ð0ð 0ð 0ð&ð &ð &ð,ð ,ð ,ðð ð ð0ð 0ð 0ð:ð :ð :ð :ð
ð ð ð0ð 0ð 0ð 0ð 0r1   r˜  ÚplanckzA discrete exponential c                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
Úboltzmann_gena—  A Boltzmann (Truncated Discrete Exponential) random variable.

    %(before_notes)s

    Notes
    -----
    The probability mass function for `boltzmann` is:

    .. math::

        f(k) = (1-\exp(-\lambda)) \exp(-\lambda k) / (1-\exp(-\lambda N))

    for :math:`k = 0,..., N-1`.

    `boltzmann` takes :math:`\lambda > 0` and :math:`N > 0` as shape parameters.

    %(after_notes)s

    %(example)s

    c                 óz   — t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        gS )Nrš  Fr   r    r&  Tr)   r,   s    r.   r/   zboltzmann_gen._shape_infol  s<   € Ý˜9 e¨aµ´¨[¸.ÑIÔIÝ˜3  q­"¬& k°>ÑBÔBðDð 	Dr1   c                 ó<   — |dk    |dk    z  t          |¦  «        z  S r¦   r;   ©r-   rš  r&  s      r.   r=   zboltzmann_gen._argcheckp  s    € Ø˜!’  A¢Ñ&­°Q©¬Ñ7Ð7r1   c                 ó   — | j         |dz
  fS rC   r?   r®  s      r.   rA   zboltzmann_gen._get_supports  s   € ØŒv�q˜1‘uˆ}Ðr1   c                 ó‚   — dt          | ¦  «        z
  dt          | |z  ¦  «        z
  z  }|t          | |z  ¦  «        z  S rC   ©r   )r-   rH   rš  r&  Úfacts        r.   rO   zboltzmann_gen._pmfv  sB   € ð •#�w�h‘-”-‘ !¥C¨¨°©
¡O¤OÑ"3Ñ4ˆØ•C˜˜ ™
‘O”OÑ#Ð#r1   c                 ó€   — t          |¦  «        }dt          | |dz   z  ¦  «        z
  dt          | |z  ¦  «        z
  z  S rC   )r   r   )r-   rG   rš  r&  rH   s        r.   rS   zboltzmann_gen._cdf|  s@   € Ý�!‰HŒHˆØ•#�w�h  !¡‘nÑ%Ô%Ñ%¨­#¨w¨h°q©j©/¬/Ñ(9Ñ:Ð:r1   c                 ó,  — |dt          | |z  ¦  «        z
  z  }t          d|z  t          d|z
  ¦  «        z  dz
  ¦  «        }|dz
                       dt          j        ¦  «        }|                      |||¦  «        }t	          j        ||k    ||¦  «        S )Nr   r£  ri  )r   r   r   r¤  r*   r+   rS   r  )r-   r_   rš  r&  Úqnewry   r�  r  s           r.   r`   zboltzmann_gen._ppf€  sˆ   € Ø�!•C˜˜ ™
‘O”OÑ#Ñ$ˆÝ�D˜‘L¥3 q¨¡v¡;¤;Ñ.¨qÑ0Ñ1Ô1ˆØ�a‘—’˜c¥2¤6Ñ*Ô*ˆØ�yŠy˜ ¨Ñ+Ô+ˆÝŒx˜ š	 5¨$Ñ/Ô/Ð/r1   c                 ó¦  — t          | ¦  «        }t          | |z  ¦  «        }|d|z
  z  ||z  d|z
  z  z
  }|d|z
  dz  z  ||z  |z  d|z
  dz  z  z
  }d|z
  d|z
  z  }||dz  z  ||z  |z  z
  }|d|z   z  |dz  z  |dz  |z  d|z   z  z
  }	|	|dz  z  }	|dd|z  z   ||z  z   z  |dz  z  |dz  |z  dd|z  z   ||z  z   z  z
  }
|
|z  |z  }
|||	|
fS )Nr²   r   r³   rµ   rx  rÿ   r±  )r-   rš  r&  ÚzÚzNrj   rk   ÚtrmÚtrm2rl   rm   s              r.   rs   zboltzmann_gen._stats‡  s,  € Ý��‰MŒMˆÝ�'�˜!‘‰_Œ_ˆØ��A‘‰Y�q˜‘t˜Q˜r™T‘{Ñ"ˆØ��Q‘˜‘
‰l˜Q˜q™S ™V Q r¡T¨A¡IÑ-Ñ-ˆØ�‰t�a˜‘c‰lˆØ�#�q‘&‘˜1˜Q™3˜r™6Ñ!ˆØ��!‘‰W�S˜!‘V‰^˜a ™d 2™g q¨¡t™nÑ,ˆØ�$˜‘+ÑˆØ��!�A‘#‘�a˜‘c‘	‰]˜3 ™6Ñ! A q¡D¨2¡I¨q°°2±©v°b¸±e©|Ñ$<Ñ<ˆØ�$‰Y˜ÑˆØ�3˜˜BˆÐr1   N)r}   r~   r   r€   r/   r=   rA   rO   rS   r`   rs   r�   r1   r.   r«  r«  V  sŠ   € € € € € ðð ð*Dð Dð Dð8ð 8ð 8ðð ð ð$ð $ð $ð;ð ;ð ;ð0ð 0ð 0ðð ð ð ð r1   r«  Ú	boltzmannz!A truncated discrete exponential )rƒ   r@   r!  c                   óJ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
dd
„Zd„ Zd	S )Úrandint_genaÏ  A uniform discrete random variable.

    %(before_notes)s

    Notes
    -----
    The probability mass function for `randint` is:

    .. math::

        f(k) = \frac{1}{\texttt{high} - \texttt{low}}

    for :math:`k \in \{\texttt{low}, \dots, \texttt{high} - 1\}`.

    `randint` takes :math:`\texttt{low}` and :math:`\texttt{high}` as shape
    parameters.

    %(after_notes)s

    Examples
    --------
    >>> import numpy as np
    >>> from scipy.stats import randint
    >>> import matplotlib.pyplot as plt
    >>> fig, ax = plt.subplots(1, 1)

    Calculate the first four moments:

    >>> low, high = 7, 31
    >>> mean, var, skew, kurt = randint.stats(low, high, moments='mvsk')

    Display the probability mass function (``pmf``):

    >>> x = np.arange(low - 5, high + 5)
    >>> ax.plot(x, randint.pmf(x, low, high), 'bo', ms=8, label='randint pmf')
    >>> ax.vlines(x, 0, randint.pmf(x, low, high), colors='b', lw=5, alpha=0.5)

    Alternatively, the distribution object can be called (as a function) to
    fix the shape and location. This returns a "frozen" RV object holding the
    given parameters fixed.

    Freeze the distribution and display the frozen ``pmf``:

    >>> rv = randint(low, high)
    >>> ax.vlines(x, 0, rv.pmf(x), colors='k', linestyles='-',
    ...           lw=1, label='frozen pmf')
    >>> ax.legend(loc='lower center')
    >>> plt.show()

    Check the relationship between the cumulative distribution function
    (``cdf``) and its inverse, the percent point function (``ppf``):

    >>> q = np.arange(low, high)
    >>> p = randint.cdf(q, low, high)
    >>> np.allclose(q, randint.ppf(p, low, high))
    True

    Generate random numbers:

    >>> r = randint.rvs(low, high, size=1000)

    c                 ó¦   — t          ddt          j         t          j        fd¦  «        t          ddt          j         t          j        fd¦  «        gS )NÚlowTr    Úhighr)   r,   s    r.   r/   zrandint_gen._shape_infoÙ  sF   € Ý˜5 $­"¬&¨µ"´&Ð(9¸>ÑJÔJÝ˜6 4­2¬6¨'µ2´6Ð):¸NÑKÔKðMð 	Mr1   c                 óN   — ||k    t          |¦  «        z  t          |¦  «        z  S r3   r;   ©r-   r¿  rÀ  s      r.   r=   zrandint_gen._argcheckÝ  s&   € Ø�s’
�k¨#Ñ.Ô.Ñ.µ¸TÑ1BÔ1BÑBÐBr1   c                 ó   — ||dz
  fS rC   r�   rÂ  s      r.   rA   zrandint_gen._get_supportà  s   € Ø�D˜‘Fˆ{Ðr1   c                 ó´   — t          j        |¦  «        t          j        |t           j        ¬¦  «        |z
  z  }t          j        ||k    ||k     z  |d¦  «        S )N©r¸   ri  )r*   Ú	ones_likerJ  Úint64r  )r-   rH   r¿  rÀ  r&   s        r.   rO   zrandint_gen._pmfã  sK   € åŒL˜‰OŒO�rœz¨$µb´hÐ?Ñ?Ô?À#ÑEÑFˆÝŒx˜˜cš a¨$¢hÑ/°°BÑ7Ô7Ð7r1   c                 ó<   — t          |¦  «        }||z
  dz   ||z
  z  S rï   r¡  )r-   rG   r¿  rÀ  rH   s        r.   rS   zrandint_gen._cdfè  s$   € Ý�!‰HŒHˆØ�C‘˜"‘ ¨¡Ñ,Ð,r1   c                 óÌ   — t          |||z
  z  |z   ¦  «        dz
  }|dz
                       ||¦  «        }|                      |||¦  «        }t          j        ||k    ||¦  «        S rC   )r   r¤  rS   r*   r  )r-   r_   r¿  rÀ  ry   r�  r  s          r.   r`   zrandint_gen._ppfì  sf   € Ý�A˜ ™Ñ$ sÑ*Ñ+Ô+¨aÑ/ˆØ˜‘—’  TÑ*Ô*ˆØ�yŠy˜  TÑ*Ô*ˆÝŒx˜ š	 5¨$Ñ/Ô/Ð/r1   c                 óÀ   — t          j        |¦  «        t          j        |¦  «        }}||z   dz
  dz  }||z
  }||z  dz
  dz  }d}d||z  dz   z  ||z  dz
  z  }	||||	fS )Nr²   r³   r   g      (@ri  g333333ó¿)r*   rJ  )
r-   r¿  rÀ  Úm2Úm1rj   Údrk   rl   rm   s
             r.   rs   zrandint_gen._statsò  s|   € Ý”˜DÑ!Ô!¥2¤:¨c¡?¤?ˆBˆØ�2‰g˜‰m˜qÑ ˆØ�‰GˆØ�‰s�Q‰w˜$ÑˆØˆØ˜˜1™˜s™Ñ# q¨¡s¨S¡yÑ1ˆØ�3˜˜BˆÐr1   Nc                 óŽ  — t          j        |¦  «        j        dk    r0t          j        |¦  «        j        dk    rt          ||||¬¦  «        S |�*t          j        ||¦  «        }t          j        ||¦  «        }t          j        t          t          |¦  «        t          j        t          ¦  «        g¬¦  «        } |||¦  «        S )z=An array of *size* random integers >= ``low`` and < ``high``.r   r  N)Úotypes)	r*   rJ  r6   r	   Úbroadcast_toÚ	vectorizer   r¸   r_  )r-   r¿  rÀ  r6   r7   Úrandints         r.   r8   zrandint_gen._rvsû  s±   € åŒ:�c‰?Œ?Ô 1Ò$Ð$­¬°DÑ)9Ô)9Ô)>À!Ò)CÐ)Cå ¨c°4¸dÐCÑCÔCÐCàÐõ
 ”/ # tÑ,Ô,ˆCÝ”? 4¨Ñ.Ô.ˆDÝ”,�w¥|°\ÑBÔBÝ')¤xµ¡}¤} oð7ñ 7ô 7ˆàˆw�s˜DÑ!Ô!Ð!r1   c                 ó&   — t          ||z
  ¦  «        S r3   )r   rÂ  s      r.   rz   zrandint_gen._entropy  s   € Ý�4˜#‘:‰ŒÐr1   rc   )r}   r~   r   r€   r/   r=   rA   rO   rS   r`   rs   r8   rz   r�   r1   r.   r½  r½  ™  s±   € € € € € ð=ð =ð~Mð Mð MðCð Cð Cðð ð ð8ð 8ð 8ð
-ð -ð -ð0ð 0ð 0ðð ð ð"ð "ð "ð "ð"ð ð ð ð r1   r½  rÒ  z#A discrete uniform (random integer)c                   ó2   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ ZdS )	Úzipf_gena­  A Zipf (Zeta) discrete random variable.

    %(before_notes)s

    See Also
    --------
    zipfian

    Notes
    -----
    The probability mass function for `zipf` is:

    .. math::

        f(k, a) = \frac{1}{\zeta(a) k^a}

    for :math:`k \ge 1`, :math:`a > 1`.

    `zipf` takes :math:`a > 1` as shape parameter. :math:`\zeta` is the
    Riemann zeta function (`scipy.special.zeta`)

    The Zipf distribution is also known as the zeta distribution, which is
    a special case of the Zipfian distribution (`zipfian`).

    %(after_notes)s

    References
    ----------
    .. [1] "Zeta Distribution", Wikipedia,
           https://en.wikipedia.org/wiki/Zeta_distribution

    %(example)s

    Confirm that `zipf` is the large `n` limit of `zipfian`.

    >>> import numpy as np
    >>> from scipy.stats import zipf, zipfian
    >>> k = np.arange(11)
    >>> np.allclose(zipf.pmf(k, a), zipfian.pmf(k, a, n=10000000))
    True

    c                 ó@   — t          dddt          j        fd¦  «        gS )Nr@   Fr   r    r)   r,   s    r.   r/   zzipf_gen._shape_infoA  ó   € Ý˜3 ¨­2¬6 {°NÑCÔCÐDÐDr1   Nc                 ó0   — |                      ||¬¦  «        S r)  )Úzipf)r-   r@   r6   r7   s       r.   r8   zzipf_gen._rvsD  s   € Ø× Ò  ¨Ð Ñ.Ô.Ð.r1   c                 ó   — |dk    S rC   r�   ©r-   r@   s     r.   r=   zzipf_gen._argcheckG  s   € Ø�1Šuˆr1   c                 ó‚   — |                      t          j        ¦  «        }dt          j        |d¦  «        z  || z  z  }|S ©Nr²   r   )r·   r*   Úfloat64r   Úzeta)r-   rH   r@   r‡  s       r.   rO   zzipf_gen._pmfJ  s;   € Ø�HŠH•R”ZÑ Ô ˆà•7”<  1Ñ%Ô%Ñ%¨¨A¨2©Ñ-ˆØˆ	r1   c                 óZ   — t          j        ||dz   k    ||fd„ t          j        ¬¦  «        S )Nr   c                 ó^   — t          j        | |z
  d¦  «        t          j        | d¦  «        z  S rC   )r   rß  )r@   r$   s     r.   rh  z zipf_gen._munp.<locals>.<lambda>S  s'   € �œ a¨!¡e¨QÑ/Ô/µ'´,¸qÀ!Ñ2DÔ2DÑD€ r1   rò   r   )r-   r$   r@   s      r.   Ú_munpzzipf_gen._munpP  s7   € ÝŒØ��A‘ŠI˜˜1�vØDÐDÝ”vðñ ô ð 	r1   rc   )	r}   r~   r   r€   r/   r8   r=   rO   râ  r�   r1   r.   rÕ  rÕ    sr   € € € € € ð)ð )ðVEð Eð Eð/ð /ð /ð /ðð ð ðð ð ðð ð ð ð r1   rÕ  rÙ  zA Zipfc                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
Úzipfian_gena`  A Zipfian discrete random variable.

    %(before_notes)s

    See Also
    --------
    zipf

    Notes
    -----
    The probability mass function for `zipfian` is:

    .. math::

        f(k, a, n) = \frac{1}{H_{n,a} k^a}

    for :math:`k \in \{1, 2, \dots, n-1, n\}`, :math:`a \ge 0`,
    :math:`n \in \{1, 2, 3, \dots\}`.

    `zipfian` takes :math:`a` and :math:`n` as shape parameters.
    :math:`H_{n,a}` is the :math:`n`:sup:`th` generalized harmonic
    number of order :math:`a`.

    The SciPy implementation of this distribution requires :math:`1 \le n \le 2^{53}`.
    For larger values of :math:`n`, the `zipfian` methods (`pmf`, `cdf`, `mean`, etc.)
    will return `nan`.

    When :math:`a > 1`, the Zipfian distribution reduces to the Zipf (zeta)
    distribution as :math:`n \rightarrow \infty`.

    %(after_notes)s

    References
    ----------
    .. [1] "Zipf's Law", Wikipedia, https://en.wikipedia.org/wiki/Zipf's_law
    .. [2] Larry Leemis, "Zipf Distribution", Univariate Distribution
           Relationships. http://www.math.wm.edu/~leemis/chart/UDR/PDFs/Zipf.pdf

    %(example)s

    Confirm that `zipfian` reduces to `zipf` for large `n`, ``a > 1``.

    >>> import numpy as np
    >>> from scipy.stats import zipf, zipfian
    >>> k = np.arange(11)
    >>> np.allclose(zipfian.pmf(k, a=3.5, n=10000000), zipf.pmf(k, a=3.5))
    True

    c                 óz   — t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        gS )Nr@   Fr   r%   r$   Tr    r)   r,   s    r.   r/   zzipfian_gen._shape_info�  s<   € Ý˜3 ¨­2¬6 {°MÑBÔBÝ˜3  q­"¬& k°>ÑBÔBðDð 	Dr1   c           	      ó¤   — |dk    |t          j        t          j        |dd¦  «        ¦  «                             t           j        ¬¦  «        k    z  S )Nr   r   l          rÅ  )r*   rJ  r¤  r·   rÇ  ©r-   r@   r$   s      r.   r=   zzipfian_gen._argcheck‘  sJ   € ð �a’Ø•b”j¥¤¨¨A¨uÑ!5Ô!5Ñ6Ô6×=Ò=ÅBÄHÐ=ÑMÔMÒMñOð 	Pr1   c                 ó.   — dt          j        |¦  «        fS rC   )r*   r   rç  s      r.   rA   zzipfian_gen._get_support¡  s   € Ø•"”(˜1‘+”+ˆ~Ðr1   c                 ó€   — t          j        |¦  «        }t          j        |¦  «        }t          j        ||||¦  «        S r3   ©r*   r   rL   Ú_normalized_gen_harmonic©r-   rH   r@   r$   s       r.   rO   zzipfian_gen._pmf¤  ó3   € ÝŒH�Q‰KŒKˆÝŒH�Q‰KŒKˆÝÔ+¨A¨q°!°QÑ7Ô7Ð7r1   c                 ó€   — t          j        |¦  «        }t          j        |¦  «        }t          j        d|||¦  «        S rC   rê  rì  s       r.   rS   zzipfian_gen._cdf©  rí  r1   c                 ó†   — t          j        |¦  «        }t          j        |¦  «        }t          j        |dz   |||¦  «        S rC   rê  rì  s       r.   rW   zzipfian_gen._sf®  s7   € ÝŒH�Q‰KŒKˆÝŒH�Q‰KŒKˆÝÔ+¨A°©E°1°a¸Ñ;Ô;Ð;r1   c                 ó  — t          j        |¦  «        }t          j        ||¦  «        }t          j        ||dz
  ¦  «        }t          j        ||dz
  ¦  «        }t          j        ||dz
  ¦  «        }t          j        ||dz
  ¦  «        }||z  }||z  |dz  z
  }	|dz  }
|	|
z  }||z  d|z  |z  |dz  z  z
  d|dz  z  |dz  z  z   |dz  z  }|dz  |z  d|dz  z  |z  |z  z
  d|z  |dz  z  |z  z   d|dz  z  z
  |	dz  z  }|dz  }||||fS )Nr   r³   rµ   rÿ   rx  r´   )r*   r   rL   Ú_gen_harmonic)r-   r@   r$   ÚHnaÚHna1ÚHna2ÚHna3ÚHna4Úmu1Úmu2nÚmu2dÚmu2rl   rm   s                 r.   rs   zzipfian_gen._stats³  sQ  € ÝŒH�Q‰KŒKˆåÔ  1Ñ%Ô%ˆÝÔ   A a¡CÑ(Ô(ˆÝÔ   A a¡CÑ(Ô(ˆÝÔ   A a¡CÑ(Ô(ˆÝÔ   A a¡CÑ(Ô(ˆØ�3‰hˆØ�S‘˜4 ™7Ñ"ˆØ�A‰vˆØ�T‰kˆØ�3‰h˜˜4™ ™ S¨!¡VÑ+Ñ+¨a°°a±©i¸¸Q¹Ñ.>Ñ>ÀÀcÁ
ÑJˆØ�1‰f�T‰k˜A˜c 1™f™H T™M¨$Ñ.Ñ.°°3±°t¸Q±w±¸tÑ1CÑCØ�$˜‘'‘	ñØ! 1™Wñ%ˆà
ˆa‰ˆØ�C˜˜RÐÐr1   N)r}   r~   r   r€   r/   r=   rA   rO   rS   rW   rs   r�   r1   r.   rä  rä  Z  sŽ   € € € € € ð0ð 0ðdDð Dð DðPð Pð Pð ð ð ð8ð 8ð 8ð
8ð 8ð 8ð
<ð <ð <ð
 ð  ð  ð  ð  r1   rä  Úzipfianz	A Zipfianc                   ó>   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d
d	„Z
dS )Údlaplace_genaL  A  Laplacian discrete random variable.

    %(before_notes)s

    Notes
    -----
    The probability mass function for `dlaplace` is:

    .. math::

        f(k) = \tanh(a/2) \exp(-a |k|)

    for integers :math:`k` and :math:`a > 0`.

    `dlaplace` takes :math:`a` as shape parameter.

    %(after_notes)s

    %(example)s

    c                 ó@   — t          dddt          j        fd¦  «        gS )Nr@   Fr   r    r)   r,   s    r.   r/   zdlaplace_gen._shape_infoà  r×  r1   c                 óh   — t          |dz  ¦  «        t          | t          |¦  «        z  ¦  «        z  S ©Nre   )r   r   Úabs)r-   rH   r@   s      r.   rO   zdlaplace_gen._pmfã  s+   € å�A�c‘E‰{Œ{�S ! ¥c¨!¡f¤f¡Ñ-Ô-Ñ-Ð-r1   c                 óf   — t          |¦  «        }d„ }d„ }t          j        |dk    ||f||¦  «        S )Nc                 óT   — dt          | | z  ¦  «        t          |¦  «        dz   z  z
  S rÝ  r±  ©rH   r@   s     r.   rÌ   zdlaplace_gen._cdf.<locals>.f1ê  s(   € Ø�˜a˜R !™V™œ­¨A©¬°©
Ñ3Ñ3Ð3r1   c                 óR   — t          || dz   z  ¦  «        t          |¦  «        dz   z  S rC   r±  r  s     r.   Úf2zdlaplace_gen._cdf.<locals>.f2í  s'   € Ý�q˜A ™E‘{Ñ#Ô#¥s¨1¡v¤v°¡zÑ2Ð2r1   r   )r   r  r  )r-   rG   r@   rH   rÌ   r  s         r.   rS   zdlaplace_gen._cdfç  sK   € Ý�!‰HŒHˆð	4ð 	4ð 	4ð	3ð 	3ð 	3õ Œ˜q Ašv¨¨1 v¨r°2Ñ6Ô6Ð6r1   c           
      ó\  — dt          |¦  «        z   }t          t          j        |ddt          | ¦  «        z   z  k     t	          ||z  ¦  «        |z  dz
  t	          d|z
  |z  ¦  «         |z  ¦  «        ¦  «        }|dz
  }t          j        |                      ||¦  «        |k    ||¦  «        S )Nr   r²   )r   r   r*   r  r   rS   )r-   r_   r@   Úconstry   r�  s         r.   r`   zdlaplace_gen._ppfò  sª   € Ø•C˜‘F”F‘
ˆÝ•B”H˜Q ¨­C°°©G¬G©Ñ!4Ò4Ý   5¡™\œ\¨AÑ-°Ñ1Ý! 1 Q¡3¨%¡-Ñ0Ô0Ð0°1Ñ4ñ6ô 6ñ 7ô 7ˆð �q‘ˆÝŒx˜Ÿ	š	 %¨Ñ+Ô+¨qÒ0°%¸Ñ>Ô>Ð>r1   c                 ó”   — t          |¦  «        }d|z  |dz
  dz  z  }d|z  |dz  d|z  z   dz   z  |dz
  dz  z  }d|d||dz  z  dz
  fS )Nre   r²   r³   g      $@rÿ   ri  rö   r±  )r-   r@   Úearú  r}  s        r.   rs   zdlaplace_gen._statsú  si   € Ý�‰VŒVˆØ�‰e�R˜‘U˜Q‘JÑˆØ�‰e�R˜‘U˜3˜r™6‘\ "‘_Ñ%¨¨B©°©
Ñ2ˆØ�3˜˜C  Q¡™J¨™OÐ+Ð+r1   c                 óf   — |t          |¦  «        z  t          t          |dz  ¦  «        ¦  «        z
  S r   )r   r   r   rÛ  s     r.   rz   zdlaplace_gen._entropy   s)   € Ø•4˜‘7”7‰{�S¥ a¨¡e¡¤Ñ-Ô-Ñ-Ð-r1   Nc                 ó¸   — t          j        t          j        |¦  «         ¦  «         }|                     ||¬¦  «        }|                     ||¬¦  «        }||z
  S r)  )r*   r   rJ  r	  )r-   r@   r6   r7   ÚprobOfSuccessrG   Úys          r.   r8   zdlaplace_gen._rvs  sY   € õ  œ¥2¤:¨a¡=¤= .Ñ1Ô1Ð1ˆØ×"Ò" =°tÐ"Ñ<Ô<ˆØ×"Ò" =°tÐ"Ñ<Ô<ˆØ�1‰uˆr1   rc   )r}   r~   r   r€   r/   rO   rS   r`   rs   rz   r8   r�   r1   r.   rý  rý  É  s�   € € € € € ðð ð,Eð Eð Eð.ð .ð .ð	7ð 	7ð 	7ð?ð ?ð ?ð,ð ,ð ,ð.ð .ð .ðð ð ð ð ð r1   rý  ÚdlaplacezA discrete Laplacianc                   óJ   — e Zd ZdZd„ Zd„ Zdddœd„Zd„ Zd„ Zd	„ Z	d
„ Z
d„ ZdS )Úpoisson_binom_genul  A Poisson Binomial discrete random variable.

    %(before_notes)s

    See Also
    --------
    binom

    Notes
    -----
    The probability mass function for `poisson_binom` is:

    .. math::

     f(k; p_1, p_2, ..., p_n) = \sum_{A \in F_k} \prod_{i \in A} p_i \prod_{j \in A^C} 1 - p_j

    where :math:`k \in \{0, 1, \dots, n-1, n\}`, :math:`F_k` is the set of all
    subsets of :math:`k` integers that can be selected :math:`\{0, 1, \dots, n-1, n\}`,
    and :math:`A^C` is the complement of a set :math:`A`.

    `poisson_binom` accepts a single array argument ``p`` for shape parameters
    :math:`0 â‰¤ p_i â‰¤ 1`, where the last axis corresponds with the index :math:`i` and
    any others are for batch dimensions. Broadcasting behaves according to the usual
    rules except that the last axis of ``p`` is ignored. Instances of this class do
    not support serialization/unserialization.

    %(after_notes)s

    References
    ----------
    .. [1] "Poisson binomial distribution", Wikipedia,
           https://en.wikipedia.org/wiki/Poisson_binomial_distribution
    .. [2] Biscarri, William, Sihai Dave Zhao, and Robert J. Brunner. "A simple and
           fast method for computing the Poisson binomial distribution function".
           Computational Statistics & Data Analysis 122 (2018) 92-100.
           :doi:`10.1016/j.csda.2018.01.007`

    %(example)s

    c                 ó   — g S r3   r�   r,   s    r.   r/   zpoisson_binom_gen._shape_infoF  s	   € ð ˆ	r1   c                 ót   — t          j        |d¬¦  «        }d|k    |dk    z  }t          j        |d¬¦  «        S ©Nr   ru   r   )r*   ÚstackÚall)r-   Úargsr&   Úcondss       r.   r=   zpoisson_binom_gen._argcheckK  s=   € ÝŒH�T Ð"Ñ"Ô"ˆØ�a’˜A šFÑ#ˆÝŒv�e !Ð$Ñ$Ô$Ð$r1   Nr‹   c                ó*  — t          j        |d¬¦  «        }|€|j        n)t          j        |¦  «        r|dfnt	          |¦  «        dz   }t          j        |j        |¦  «        }t                               |||¬¦  «                             d¬¦  «        S )Néÿÿÿÿru   r   )r   r‹   )	r*   r  ÚshapeÚisscalarÚtupleÚbroadcast_shapesr›   r8   rx   )r-   r6   r7   r  r&   s        r.   r8   zpoisson_binom_gen._rvsP  s‹   € åŒH�T Ð#Ñ#Ô#ˆð  ˜<�”�Ýœ[¨Ñ.Ô.ÐF��q�	�	µE¸$±K´KÀ$Ñ4Fð 	åÔ" 1¤7¨DÑ1Ô1ˆÝ�~Š~˜a d¸ˆ~ÑFÔF×JÒJÐPRÐJÑSÔSÐSr1   c                 ó$   — dt          |¦  «        fS r¦   )Úlen)r-   r  s     r.   rA   zpoisson_binom_gen._get_supportZ  s   € Ø•#�d‘)”)ˆ|Ðr1   c                 óî   — t          j        |¦  «                             t           j        ¦  «        }t          j        |g|¢R Ž ^}}t          j        |t           j        ¬¦  «        }t          ||d¦  «        S )NrÅ  rC  ©r*   Ú
atleast_1dr·   rÇ  rÏ   rJ  rÞ  r   ©r-   rH   r  s      r.   rO   zpoisson_binom_gen._pmf]  óe   € ÝŒM˜!ÑÔ×#Ò#¥B¤HÑ-Ô-ˆÝÔ& qÐ0¨4Ð0Ð0Ð0ˆˆˆDÝŒz˜$¥b¤jÐ1Ñ1Ô1ˆÝ˜a  uÑ-Ô-Ð-r1   c                 óî   — t          j        |¦  «                             t           j        ¦  «        }t          j        |g|¢R Ž ^}}t          j        |t           j        ¬¦  «        }t          ||d¦  «        S )NrÅ  rÑ   r"  r$  s      r.   rS   zpoisson_binom_gen._cdfc  r%  r1   c                 óž   — t          j        |d¬¦  «        }t          j        |d¬¦  «        }t          j        |d|z
  z  d¬¦  «        }||d d fS r  )r*   r  rx   )r-   r  Úkwdsr&   rñ   rk   s         r.   rs   zpoisson_binom_gen._statsi  sU   € ÝŒH�T Ð"Ñ"Ô"ˆÝŒv�a˜aÐ Ñ Ô ˆÝŒf�Q˜!˜A™#‘Y QÐ'Ñ'Ô'ˆØ�c˜4 Ð&Ð&r1   c                 ó"   — t          | g|¢R i |¤ŽS r3   )Úpoisson_binomial_frozen)r-   r  r(  s      r.   Ú__call__zpoisson_binom_gen.__call__o  s    € Ý& tÐ;¨dÐ;Ð;Ð;°dÐ;Ð;Ð;r1   )r}   r~   r   r€   r/   r=   r8   rA   rO   rS   rs   r+  r�   r1   r.   r  r    s­   € € € € € ð'ð 'ðPð ð ð
%ð %ð %ð
  $°$ð Tð Tð Tð Tð Tðð ð ð.ð .ð .ð.ð .ð .ð'ð 'ð 'ð<ð <ð <ð <ð <r1   r  Úpoisson_binomzA Poisson binomialr&   )rƒ   r!  Úshapesc                 óP   — t          t          j        |dd¦  «        ¦  «        |d|fS ©Nr  r   r²   ©r  r*   Úmoveaxis)r-   r&   Úlocr6   s       r.   Ú_parse_args_rvsr3  {  s'   € Ý•”˜Q  AÑ&Ô&Ñ'Ô'¨¨c°4Ð7Ð7r1   ra   c                 óP   — t          t          j        |dd¦  «        ¦  «        |d|fS r/  r0  )r-   r&   r2  ri   s       r.   Ú_parse_args_statsr5  ~  s'   € Ý•”˜Q  AÑ&Ô&Ñ'Ô'¨¨c°7Ð:Ð:r1   c                 óN   — t          t          j        |dd¦  «        ¦  «        |dfS r/  r0  )r-   r&   r2  s      r.   Ú_parse_argsr7  �  s%   € Ý•”˜Q  AÑ&Ô&Ñ'Ô'¨¨cÐ1Ð1r1   c                   ó   — e Zd Zd„ Zdd„ZdS )r*  c                 óè  — || _         || _         |j        di |                     ¦   «         ¤Ž| _        t
                               t          t          ¦  «        | j        _        t                               t          t          ¦  «        | j        _	        t                               t          t          ¦  «        | j        _
         | j        j
        |i |¤Ž\  }}} | j        j        |Ž \  | _        | _        d S )Nr�   )r  r(  Ú	__class__Ú_updated_ctor_paramÚdistr3  Ú__get__Ú_pb_objÚ_pb_clsr5  r7  rA   r@   r�   )r-   r<  r  r(  r-  Ú_s         r.   Ú__init__z poisson_binomial_frozen.__init__�  sÃ   € ØˆŒ	ØˆŒ	ð #�D”NÐ@Ð@ T×%=Ò%=Ñ%?Ô%?Ð@Ð@ˆŒ	õ %4×$;Ò$;½GÅWÑ$MÔ$MˆŒ	Ô!Ý&7×&?Ò&?ÅÍÑ&QÔ&QˆŒ	Ô#Ý +× 3Ò 3µG½WÑ EÔ EˆŒ	Ôà,�t”yÔ,¨dÐ;°dÐ;Ð;‰ˆ��1Ø/˜œÔ/°Ð8‰ˆŒ�”��r1   NFc                 ó|   —  | j         j        | j        i | j        ¤Ž\  }}} | j         j        || j        ||||fi |¤ŽS r3   )r<  r7  r  r(  Úexpect)	r-   ÚfuncÚlbÚubÚconditionalr(  r@   r2  Úscales	            r.   rC  zpoisson_binomial_frozen.expectœ  sP   € Ø-˜œ	Ô-¨t¬yÐF¸D¼IÐFÐF‰ˆˆ3�ð  ˆtŒyÔ  d¤i°°b¸"¸kÐRÐRÈTÐRÐRÐRr1   )NNNF)r}   r~   r   rA  rC  r�   r1   r.   r*  r*  ‹  s=   € € € € € ð9ð 9ð 9ðSð Sð Sð Sð Sð Sr1   r*  c                   ó2   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ ZdS )	Úskellam_genaÍ  A  Skellam discrete random variable.

    %(before_notes)s

    Notes
    -----
    Probability distribution of the difference of two correlated or
    uncorrelated Poisson random variables.

    Let :math:`k_1` and :math:`k_2` be two Poisson-distributed r.v. with
    expected values :math:`\lambda_1` and :math:`\lambda_2`. Then,
    :math:`k_1 - k_2` follows a Skellam distribution with parameters
    :math:`\mu_1 = \lambda_1 - \rho \sqrt{\lambda_1 \lambda_2}` and
    :math:`\mu_2 = \lambda_2 - \rho \sqrt{\lambda_1 \lambda_2}`, where
    :math:`\rho` is the correlation coefficient between :math:`k_1` and
    :math:`k_2`. If the two Poisson-distributed r.v. are independent then
    :math:`\rho = 0`.

    Parameters :math:`\mu_1` and :math:`\mu_2` must be strictly positive.

    For details see: https://en.wikipedia.org/wiki/Skellam_distribution

    `skellam` takes :math:`\mu_1` and :math:`\mu_2` as shape parameters.

    %(after_notes)s

    %(example)s

    c                 óz   — t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        gS )Nr÷  Fr   r    rú  r)   r,   s    r.   r/   zskellam_gen._shape_infoÁ  s<   € Ý˜5 %¨!­R¬V¨°nÑEÔEÝ˜5 %¨!­R¬V¨°nÑEÔEðGð 	Gr1   Nc                 ó`   — |}|                      ||¦  «        |                      ||¦  «        z
  S r3   r„  )r-   r÷  rú  r6   r7   r$   s         r.   r8   zskellam_gen._rvsÅ  s7   € ØˆØ×$Ò$ S¨!Ñ,Ô,Ø×$Ò$ S¨!Ñ,Ô,ñ-ð 	.r1   c                 ó   — t          j        d¬¦  «        5  t          j        |dk     t          j        d|z  dd|z
  z  d|z  ¦  «        dz  t          j        d|z  dd|z   z  d|z  ¦  «        dz  ¦  «        }d d d ¦  «         n# 1 swxY w Y   |S )NrÍ   rÙ   r   r³   r   )r*   rÐ   r  rL   Ú	_ncx2_pdf©r-   rG   r÷  rú  Úpxs        r.   rO   zskellam_gen._pmfÊ  sç   € ÝŒ[˜hÐ'Ñ'Ô'ð 	Bð 	BÝ”˜!˜aš%Ýœ-¨¨#©¨q°!°A±#©w¸¸#¹Ñ>Ô>¸qÑ@Ýœ-¨¨#©¨q°!°A±#©w¸¸#¹Ñ>Ô>¸qÑ@ñBô BˆBð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð
 ˆ	s   –A!BÂBÂ
Bc                 ó,  — t          |¦  «        }t          j        d¬¦  «        5  t          j        |dk     t	          j        d|z  d|z  d|z  ¦  «        t          j        d|z  d|dz   z  d|z  ¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   |S )NrÍ   rÙ   r   r³   éþÿÿÿr   )r   r*   rÐ   r  r   ÚchndtrrL   Ú_ncx2_sfrO  s        r.   rS   zskellam_gen._cdfÒ  sÑ   € Ý�!‰HŒHˆÝŒ[˜hÐ'Ñ'Ô'ð 	?ð 	?Ý”˜!˜aš%Ý!œ.¨¨3©°°1±°a¸±eÑ<Ô<Ýœ, q¨¡u¨a°°1±©g°q¸±uÑ=Ô=ñ?ô ?ˆBð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð ˆ	s   ¥AB	Â	BÂBc                 óV   — ||z
  }||z   }|t          |dz  ¦  «        z  }d|z  }||||fS )Nrµ   r   r÷   )r-   r÷  rú  rñ   rk   rl   rm   s          r.   rs   zskellam_gen._statsÚ  s@   € Ø�S‰yˆØ�C‰iˆØ•D˜# ™‘N”NÑ"ˆØ�‰WˆØ�S˜"˜bÐ Ð r1   rc   )	r}   r~   r   r€   r/   r8   rO   rS   rs   r�   r1   r.   rJ  rJ  £  sq   € € € € € ðð ð:Gð Gð Gð.ð .ð .ð .ð
ð ð ðð ð ð!ð !ð !ð !ð !r1   rJ  Úskellamz	A Skellamc                   óJ   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ ZdS )Úyulesimon_genaî  A Yule-Simon discrete random variable.

    %(before_notes)s

    Notes
    -----

    The probability mass function for the `yulesimon` is:

    .. math::

        f(k) =  \alpha B(k, \alpha+1)

    for :math:`k=1,2,3,...`, where :math:`\alpha>0`.
    Here :math:`B` refers to the `scipy.special.beta` function.

    The sampling of random variates is based on pg 553, Section 6.3 of [1]_.
    Our notation maps to the referenced logic via :math:`\alpha=a-1`.

    For details see the wikipedia entry [2]_.

    References
    ----------
    .. [1] Devroye, Luc. "Non-uniform Random Variate Generation",
         (1986) Springer, New York.

    .. [2] https://en.wikipedia.org/wiki/Yule-Simon_distribution

    %(after_notes)s

    %(example)s

    c                 ó@   — t          dddt          j        fd¦  «        gS )NÚalphaFr   r    r)   r,   s    r.   r/   zyulesimon_gen._shape_info  s   € Ý˜7 E¨A­r¬v¨;¸ÑGÔGÐHÐHr1   Nc           	      ó¾   — |                      |¦  «        }|                      |¦  «        }t          | t          t          | |z  ¦  «         ¦  «        z  ¦  «        }|S r3   )Ústandard_exponentialr   r   r   )r-   rZ  r6   r7   ÚE1ÚE2Úanss          r.   r8   zyulesimon_gen._rvs
  sZ   € Ø×.Ò.¨tÑ4Ô4ˆØ×.Ò.¨tÑ4Ô4ˆÝ�B�3�¥ R C¨%¡KÑ 0Ô 0Ð0Ñ1Ô1Ñ1Ñ2Ô2ˆØˆ
r1   c                 ó8   — |t          j        ||dz   ¦  «        z  S rC   ©r   r£   ©r-   rG   rZ  s      r.   rO   zyulesimon_gen._pmf  s   € Ø•w”| A u¨q¡yÑ1Ô1Ñ1Ð1r1   c                 ó   — |dk    S r¦   r�   )r-   rZ  s     r.   r=   zyulesimon_gen._argcheck  s   € Ø˜’	Ðr1   c                 óR   — t          |¦  «        t          j        ||dz   ¦  «        z   S rC   ©r   r   r   rb  s      r.   rJ   zyulesimon_gen._logpmf  s#   € Ý�5‰zŒz�GœN¨1¨e°a©iÑ8Ô8Ñ8Ð8r1   c                 ó>   — d|t          j        ||dz   ¦  «        z  z
  S rC   ra  rb  s      r.   rS   zyulesimon_gen._cdf  s"   € Ø�1•w”| A u¨q¡yÑ1Ô1Ñ1Ñ1Ð1r1   c                 ó8   — |t          j        ||dz   ¦  «        z  S rC   ra  rb  s      r.   rW   zyulesimon_gen._sf  s   € Ø•7”<  5¨1¡9Ñ-Ô-Ñ-Ð-r1   c                 óR   — t          |¦  «        t          j        ||dz   ¦  «        z   S rC   re  rb  s      r.   r  zyulesimon_gen._logsf  s#   € Ý�1‰vŒv�œ q¨%°!©)Ñ4Ô4Ñ4Ð4r1   c                 óÂ  — t          j        |dk    t           j        ||dz
  z  ¦  «        }t          j        |dk    |dz  |dz
  |dz
  dz  z  z  t           j        ¦  «        }t          j        |dk    t           j        |¦  «        }t          j        |dk    t	          |dz
  ¦  «        |dz   dz  z  ||dz
  z  z  t           j        ¦  «        }t          j        |dk    t           j        |¦  «        }t          j        |dk    |dz   d|dz  z  d|z  z
  dz
  ||dz
  z  |dz
  z  z  z   t           j        ¦  «        }t          j        |dk    t           j        |¦  «        }||||fS )	Nr   r³   re   rµ   rÿ   é   é1   é   )r*   r  r+   Únanr   )r-   rZ  rj   rú  rl   rm   s         r.   rs   zyulesimon_gen._stats"  s\  € ÝŒX�e˜q’j¥"¤&¨%°5¸1±9Ñ*=Ñ>Ô>ˆÝŒh�u˜q’yØ˜a‘x E¨C¡K°E¸A±IÀ±>Ñ#AÑBÝ”vñô ˆõ Œh�u ’z¥2¤6¨3Ñ/Ô/ˆÝŒX�e˜a’iÝ˜5 1™9‘o”o¨°©°Q©Ñ6¸%À5È1Á9Ñ:MÑNÝ”fñô ˆõ ŒX�e˜q’j¥"¤&¨"Ñ-Ô-ˆÝŒX�e˜a’iØ˜a‘i B¨°©¡M°B¸±JÑ$>ÀÑ$CØ$)¨U°Q©YÑ$7¸5À1¹9Ñ$Eñ$Gñ Hå”fñô ˆõ ŒX�e˜q’j¥"¤&¨"Ñ-Ô-ˆØ�3˜˜BˆÐr1   rc   )r}   r~   r   r€   r/   r8   rO   r=   rJ   rS   rW   r  rs   r�   r1   r.   rX  rX  å  s®   € € € € € ð ð  ðBIð Ið Iðð ð ð ð2ð 2ð 2ðð ð ð9ð 9ð 9ð2ð 2ð 2ð.ð .ð .ð5ð 5ð 5ðð ð ð ð r1   rX  Ú	yulesimon)rƒ   r@   c                   óB   — e Zd ZdZdZdZd„ Zd„ Zd„ Zd
d„Z	d„ Z
dd	„ZdS )Ú_nchypergeom_genz‰A noncentral hypergeometric discrete random variable.

    For subclassing by nchypergeom_fisher_gen and nchypergeom_wallenius_gen.

    Nc           	      óî   — t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        t          dddt          j        fd¦  «        t          dddt          j        fd	¦  «        gS )
Nr%  Tr   r%   r$   r&  ÚoddsFr    r)   r,   s    r.   r/   z_nchypergeom_gen._shape_infoA  sj   € Ý˜3  q­"¬& k°=ÑAÔAÝ˜3  q­"¬& k°=ÑAÔAÝ˜3  q­"¬& k°=ÑAÔAÝ˜6 5¨1­b¬f¨+°~ÑFÔFðHð 	Hr1   c                 óz   — |||}}}||z
  }t          j        d||z
  ¦  «        }t          j        ||¦  «        }||fS r¦   r,  )	r-   r%  r$   r&  rr  rÌ  rË  Úx_minÚx_maxs	            r.   rA   z_nchypergeom_gen._get_supportG  sH   € Ø�a˜ˆqˆ2ˆØ�‰VˆÝ”
˜1˜a "™fÑ%Ô%ˆÝ”
˜1˜bÑ!Ô!ˆØ�eˆ|Ðr1   c                 óJ  — t          j        |¦  «        t          j        |¦  «        }}t          j        |¦  «        t          j        |¦  «        }}t          j        |¦  «         |                     t          ¦  «        |k    z  |dk    z  }t          j        |¦  «         |                     t          ¦  «        |k    z  |dk    z  }t          j        |¦  «         |                     t          ¦  «        |k    z  |dk    z  }|dk    }||k    }	||k    }
||z  |z  |z  |	z  |
z  S r¦   )r*   rJ  Úisnanr·   r_  )r-   r%  r$   r&  rr  Úcond1Úcond2Úcond3Úcond4Úcond5Úcond6s              r.   r=   z_nchypergeom_gen._argcheckN  só   € ÝŒz˜!‰}Œ}�bœj¨™mœmˆ1ˆÝ”*˜Q‘-”-¥¤¨DÑ!1Ô!1ˆ4ˆÝ”(˜1‘+”+� !§(¢(­3¡-¤-°1Ò"4Ñ5¸¸aºÑ@ˆÝ”(˜1‘+”+� !§(¢(­3¡-¤-°1Ò"4Ñ5¸¸aºÑ@ˆÝ”(˜1‘+”+� !§(¢(­3¡-¤-°1Ò"4Ñ5¸¸aºÑ@ˆØ�q’ˆØ�Q’ˆØ�Q’ˆØ�u‰}˜uÑ$ uÑ,¨uÑ4°uÑ<Ð<r1   c                 óJ   ‡ — t           ˆ fd„¦   «         } |||||||¬¦  «        S )Nc                 óz  •— t          j        | ¦  «        t          j        |¦  «        z  t          j        |¦  «        z  rt          j        |t           j        ¦  «        S t          j        |¦  «        }t          ¦   «         }t          |‰
j        ¦  «        } |||| |||¦  «        }	|	                     |¦  «        }	|	S r3   )	r*   rw  Úfullrm  Úprodr   ÚgetattrÚrvs_nameÚreshape)r%  r$   r&  rr  r6   r7   ÚlengthÚurnÚrv_genrc  r-   s             €r.   rd  z$_nchypergeom_gen._rvs.<locals>._rvs1[  s™   ø€ åŒx˜‰{Œ{�RœX a™[œ[Ñ(­2¬8°A©;¬;Ñ6ð -Ý”w˜t¥R¤VÑ,Ô,Ð,Ý”W˜T‘]”]ˆFÝ#Ñ%Ô%ˆCÝ˜S $¤-Ñ0Ô0ˆFØ�&˜˜A˜q $¨°Ñ=Ô=ˆCØ—+’+˜dÑ#Ô#ˆCØˆJr1   r‹   re  )r-   r%  r$   r&  rr  r6   r7   rd  s   `       r.   r8   z_nchypergeom_gen._rvsY  sF   ø€ å	#ð	ð 	ð 	ð 	ñ 
$Ô	#ð	ð ˆu�Q˜˜1˜d¨¸LÐIÑIÔIÐIr1   c                 óÊ   ‡ — t          j        |||||¦  «        \  }}}}}|j        dk    rt          j        |¦  «        S t           j        ˆ fd„¦   «         } ||||||¦  «        S )Nr   c                 ó  •— t          j        | ¦  «        t          j        |¦  «        z  t          j        |¦  «        z  t          j        |¦  «        z  rt           j        S ‰                     ||||d¦  «        }|                     | ¦  «        S ©Ngê-�™—q=)r*   rw  rm  r<  Úprobability)rG   r%  r$   r&  rr  r†  r-   s         €r.   Ú_pmf1z$_nchypergeom_gen._pmf.<locals>._pmf1n  sl   ø€ åŒx˜‰{Œ{�RœX a™[œ[Ñ(­2¬8°A©;¬;Ñ6½¼À!¹¼ÑDð Ý”v�Ø—)’)˜A˜q ! T¨5Ñ1Ô1ˆCØ—?’? 1Ñ%Ô%Ð%r1   )r*   rÏ   r6   Ú
empty_likerÑ  )r-   rG   r%  r$   r&  rr  rŒ  s   `      r.   rO   z_nchypergeom_gen._pmfh  s€   ø€ åÔ.¨q°!°Q¸¸4Ñ@Ô@Ñˆˆ1ˆa��DØŒ6�QŠ;ˆ;Ý”= Ñ#Ô#Ð#å	Œð	&ð 	&ð 	&ð 	&ñ 
Œð	&ð ˆu�Q˜˜1˜a Ñ&Ô&Ð&r1   ra   c                 ó~   ‡ — t           j        ˆ fd„¦   «         }d|v sd|v r |||||¦  «        nd\  }}d\  }	}
|||	|
fS )Nc                 ó
  •— t          j        | ¦  «        t          j        |¦  «        z  t          j        |¦  «        z  rt           j        t           j        fS ‰                     ||| |d¦  «        }|                     ¦   «         S rŠ  )r*   rw  rm  r<  ri   )r%  r$   r&  rr  r†  r-   s        €r.   Ú	_moments1z*_nchypergeom_gen._stats.<locals>._moments1y  sb   ø€ åŒx˜‰{Œ{�RœX a™[œ[Ñ(­2¬8°A©;¬;Ñ6ð &Ý”v�rœv�~Ð%Ø—)’)˜A˜q ! T¨5Ñ1Ô1ˆCØ—;’;‘=”=Ð r1   r@  Úvrc   )r*   rÑ  )r-   r%  r$   r&  rr  ri   r�  r@  r‘  rd   rH   s   `          r.   rs   z_nchypergeom_gen._statsw  ss   ø€ å	Œð	!ð 	!ð 	!ð 	!ñ 
Œð	!ð .1°G¨^¨^¸sÀg¸~¸~�	�	˜!˜Q  4Ñ(Ô(Ð(Ø!ñ 	ˆˆ1à‰ˆˆ1Ø�!�Q˜ˆzÐr1   rc   r{   )r}   r~   r   r€   rƒ  r<  r/   rA   r=   r8   rO   rs   r�   r1   r.   rp  rp  7  s•   € € € € € ðð ð €HØ€DðHð Hð Hðð ð ð	=ð 	=ð 	=ðJð Jð Jð Jð'ð 'ð 'ðð ð ð ð ð r1   rp  c                   ó   — e Zd ZdZdZeZdS )Únchypergeom_fisher_genag	  A Fisher's noncentral hypergeometric discrete random variable.

    Fisher's noncentral hypergeometric distribution models drawing objects of
    two types from a bin. `M` is the total number of objects, `n` is the
    number of Type I objects, and `odds` is the odds ratio: the odds of
    selecting a Type I object rather than a Type II object when there is only
    one object of each type.
    The random variate represents the number of Type I objects drawn if we
    take a handful of objects from the bin at once and find out afterwards
    that we took `N` objects.

    %(before_notes)s

    See Also
    --------
    nchypergeom_wallenius, hypergeom, nhypergeom

    Notes
    -----
    Let mathematical symbols :math:`N`, :math:`n`, and :math:`M` correspond
    with parameters `N`, `n`, and `M` (respectively) as defined above.

    The probability mass function is defined as

    .. math::

        p(x; M, n, N, \omega) =
        \frac{\binom{n}{x}\binom{M - n}{N-x}\omega^x}{P_0},

    for
    :math:`x \in [x_l, x_u]`,
    :math:`M \in {\mathbb N}`,
    :math:`n \in [0, M]`,
    :math:`N \in [0, M]`,
    :math:`\omega > 0`,
    where
    :math:`x_l = \max(0, N - (M - n))`,
    :math:`x_u = \min(N, n)`,

    .. math::

        P_0 = \sum_{y=x_l}^{x_u} \binom{n}{y}\binom{M - n}{N-y}\omega^y,

    and the binomial coefficients are defined as

    .. math:: \binom{n}{k} \equiv \frac{n!}{k! (n - k)!}.

    `nchypergeom_fisher` uses the BiasedUrn package by Agner Fog with
    permission for it to be distributed under SciPy's license.

    The symbols used to denote the shape parameters (`N`, `n`, and `M`) are not
    universally accepted; they are chosen for consistency with `hypergeom`.

    Note that Fisher's noncentral hypergeometric distribution is distinct
    from Wallenius' noncentral hypergeometric distribution, which models
    drawing a pre-determined `N` objects from a bin one by one.
    When the odds ratio is unity, however, both distributions reduce to the
    ordinary hypergeometric distribution.

    %(after_notes)s

    References
    ----------
    .. [1] Agner Fog, "Biased Urn Theory".
           https://cran.r-project.org/web/packages/BiasedUrn/vignettes/UrnTheory.pdf

    .. [2] "Fisher's noncentral hypergeometric distribution", Wikipedia,
           https://en.wikipedia.org/wiki/Fisher's_noncentral_hypergeometric_distribution

    %(example)s

    Ú
rvs_fisherN)r}   r~   r   r€   rƒ  r   r<  r�   r1   r.   r“  r“  †  s'   € € € € € ðGð GðR €HØ%€D€D€Dr1   r“  Únchypergeom_fisherz$A Fisher's noncentral hypergeometricc                   ó   — e Zd ZdZdZeZdS )Únchypergeom_wallenius_gena}	  A Wallenius' noncentral hypergeometric discrete random variable.

    Wallenius' noncentral hypergeometric distribution models drawing objects of
    two types from a bin. `M` is the total number of objects, `n` is the
    number of Type I objects, and `odds` is the odds ratio: the odds of
    selecting a Type I object rather than a Type II object when there is only
    one object of each type.
    The random variate represents the number of Type I objects drawn if we
    draw a pre-determined `N` objects from a bin one by one.

    %(before_notes)s

    See Also
    --------
    nchypergeom_fisher, hypergeom, nhypergeom

    Notes
    -----
    Let mathematical symbols :math:`N`, :math:`n`, and :math:`M` correspond
    with parameters `N`, `n`, and `M` (respectively) as defined above.

    The probability mass function is defined as

    .. math::

        p(x; N, n, M) = \binom{n}{x} \binom{M - n}{N-x}
        \int_0^1 \left(1-t^{\omega/D}\right)^x\left(1-t^{1/D}\right)^{N-x} dt

    for
    :math:`x \in [x_l, x_u]`,
    :math:`M \in {\mathbb N}`,
    :math:`n \in [0, M]`,
    :math:`N \in [0, M]`,
    :math:`\omega > 0`,
    where
    :math:`x_l = \max(0, N - (M - n))`,
    :math:`x_u = \min(N, n)`,

    .. math::

        D = \omega(n - x) + ((M - n)-(N-x)),

    and the binomial coefficients are defined as

    .. math:: \binom{n}{k} \equiv \frac{n!}{k! (n - k)!}.

    `nchypergeom_wallenius` uses the BiasedUrn package by Agner Fog with
    permission for it to be distributed under SciPy's license.

    The symbols used to denote the shape parameters (`N`, `n`, and `M`) are not
    universally accepted; they are chosen for consistency with `hypergeom`.

    Note that Wallenius' noncentral hypergeometric distribution is distinct
    from Fisher's noncentral hypergeometric distribution, which models
    take a handful of objects from the bin at once, finding out afterwards
    that `N` objects were taken.
    When the odds ratio is unity, however, both distributions reduce to the
    ordinary hypergeometric distribution.

    %(after_notes)s

    References
    ----------
    .. [1] Agner Fog, "Biased Urn Theory".
           https://cran.r-project.org/web/packages/BiasedUrn/vignettes/UrnTheory.pdf

    .. [2] "Wallenius' noncentral hypergeometric distribution", Wikipedia,
           https://en.wikipedia.org/wiki/Wallenius'_noncentral_hypergeometric_distribution

    %(example)s

    Úrvs_walleniusN)r}   r~   r   r€   rƒ  r   r<  r�   r1   r.   r—  r—  Ù  s'   € € € € € ðGð GðR €HØ'€D€D€Dr1   r—  Únchypergeom_walleniusz&A Wallenius' noncentral hypergeometric)r   N)r   ra   )r   )iÚ	functoolsr   Úscipyr   Úscipy.specialr   r   r   r   rD   Úscipy.special._ufuncsÚ_ufuncsrL   Úscipy._lib._utilr	   Úscipy._lib.array_api_extraÚ_libÚarray_api_extrar  Úscipy.interpolater
   Únumpyr   r   r   r   r   r   r   r   r   r   r*   Ú_distn_infrastructurer   r   r   r   r   r   Ú
_biasedurnr   r   r   Ú_stats_pythranr   r!   r‚   r…   r›   r�   r»   r½   rå   rç   r  r  r   r#  rQ  rS  rm  ro  r~  r€  r…  r˜  r©  r«  r»  r½  rÒ  rÕ  rÙ  rä  rû  rý  r+   r  r  r,  r3  r5  r7  r>  r?  r=  r*  rJ  rV  rX  rn  rp  r“  r•  r—  r™  ÚlistÚglobalsÚcopyÚitemsÚpairsÚ_distn_namesÚ_distn_gen_namesÚ__all__r�   r1   r.   ú<module>r°     sù  ðð
 Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø )Ð )Ð )Ð )Ð )Ð )Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø &Ð &Ð &Ð &Ð &Ð &à MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mà Ð Ð Ð ð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð +Ð *Ð *Ð *Ð *Ð *ð]*ð ]*ð ]*ð ]*ð ]*�ñ ]*ô ]*ð ]*ð@ 	ˆ	�wÐÑÔ€ð>#ð >#ð >#ð >#ð >#�Iñ >#ô >#ð >#ðB ˆM˜A KÐ0Ñ0Ô0€	ðOð Oð Oð Oð O�Kñ Oô Oð Oðd ˆM˜{Ð+Ñ+Ô+€	ðr
ð r
ð r
ð r
ð r
�ñ r
ô r
ð r
ðj 
ˆ˜Ð	"Ñ	"Ô	"€ðZð Zð Zð Zð Z�[ñ Zô Zð Zðz ˆ^ Ð.Ñ.Ô.€
ðN7ð N7ð N7ð N7ð N7ˆ{ñ N7ô N7ð N7ðb €x�!˜&¨=Ð9Ñ9Ô9€ðXð Xð Xð Xð X�Kñ Xô Xð Xðv ˆM˜{Ð+Ñ+Ô+€	ð[ð [ð [ð [ð [�[ñ [ô [ð [ð| ˆ^ Ð.Ñ.Ô.€
ð=ð =ð =ð =ð =�ñ =ô =ð =ð@ 
ˆ�a˜h°Ð	AÑ	AÔ	A€ð?ð ?ð ?ð ?ð ?�+ñ ?ô ?ð ?ðD ˆ+˜9¨{Ð
;Ñ
;Ô
;€ðD0ð D0ð D0ð D0ð D0�ñ D0ô D0ð D0ðN 
ˆ�a˜hÐ1JÐ	KÑ	KÔ	K€ð<ð <ð <ð <ð <�Kñ <ô <ð <ð~ ˆM˜{¨aØ#FðHñ Hô H€	ðtð tð tð tð t�+ñ tô tð tðn ˆ+˜9ð 0)ð *ñ *ô *€ð
?ð ?ð ?ð ?ð ?ˆ{ñ ?ô ?ð ?ðD €x�!˜&¨8Ð4Ñ4Ô4€ði ð i ð i ð i ð i �+ñ i ô i ð i ðX ˆ+˜ 	°KÐ
@Ñ
@Ô
@€ðMð Mð Mð Mð M�;ñ Mô Mð Mð` ˆ<˜2œ6˜'Ø'Ð2HðJñ Jô J€ðS<ð S<ð S<ð S<ð S<˜ñ S<ô S<ð S<ðl "Ð! ÐAUØ),ð.ñ .ô .€ð8ð 8ð 8ð 8ð;ð ;ð ;ð ;ð2ð 2ð 2ð 2ð
 !Ð"3Ð €ˆØ /× 7Ò 7¸ÀÑ IÔ I€Ô Ø"3×";Ò";¸GÀWÑ"MÔ"M€Ô Ø'×/Ò/°¸ÑAÔA€Ô ðSð Sð Sð Sð SÐ0ñ Sô Sð Sð0<!ð <!ð <!ð <!ð <!�+ñ <!ô <!ð <!ð~ ˆ+˜œ˜ i¸+Ð
FÑ
FÔ
F€ðLð Lð Lð Lð L�Kñ Lô Lð Lð^ ˆM˜{¨aÐ0Ñ0Ô0€	ðLð Lð Lð Lð L�{ñ Lô Lð Lð^K&ð K&ð K&ð K&ð K&Ð-ñ K&ô K&ð K&ð\ ,Ð+Ø	Ø3ð5ñ 5ô 5Ð ð
K(ð K(ð K(ð K(ð K(Ð 0ñ K(ô K(ð K(ð\ 2Ð1Ø	 Ø5ð7ñ 7ô 7Ð ð 	ˆˆWˆW‰YŒY�^Š^ÑÔ×#Ò#Ñ%Ô%Ñ&Ô&€Ø!7Ð!7¸¸{Ñ!KÔ!KÑ €Ðà
Ð)Ñ
)€€€r1   