§
    µ³ÙgGþ  ã                   ó  — d dl mZ d dlmZ d dlmZmZmZmZ	m
Z
 d dlmZ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( d dl)mc m*Z+  G d„ de¦  «        Z, e,d¬¦  «        Z- G d„ de,¦  «        Z. e.dd¬¦  «        Z/ G d„ de¦  «        Z0 e0d¬¦  «        Z1 G d„ de¦  «        Z2 e2d¬¦  «        Z3 G d„ de¦  «        Z4 e4d¬¦  «        Z5 G d„ de¦  «        Z6 e6ddd ¬!¦  «        Z7 G d"„ d#e¦  «        Z8 e8d$¬¦  «        Z9 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¦  «        Z? G d1„ d2e¦  «        Z@ e@d d3d4¬!¦  «        ZA G d5„ d6e¦  «        ZB eBd7d d8¬9¦  «        ZC G d:„ d;e¦  «        ZD eDd<d=¬0¦  «        ZE G d>„ d?e¦  «        ZF eFdd@dA¬!¦  «        ZGdB„ ZHdC„ ZIdD„ ZJ G dE„ dFe¦  «        ZK eKddGdH¬!¦  «        ZL G dI„ dJe¦  «        ZM eMejN         dKdL¬!¦  «        ZO G dM„ dNe¦  «        ZP ePdOdPdQ¬R¦  «        ZQdkdS„ZRdldU„ZSdmdV„ZTeQePcZUZVeR W                    eUeV¦  «        eQ_R        eS W                    eUeV¦  «        eQ_S        eT W                    eUeV¦  «        eQ_T         G dW„ dXe"¦  «        ZX G dY„ dZe¦  «        ZY eYejN         d[d\¬!¦  «        ZZ G d]„ d^e¦  «        Z[ e[d_d¬`¦  «        Z\ G da„ dbe¦  «        Z] G dc„ dde]¦  «        Z^ e^dedf¬0¦  «        Z_ G dg„ dhe]¦  «        Z` e`didj¬0¦  «        Za eb ec¦   «          d                    ¦   «          e                    ¦   «         ¦  «        Zf eefe¦  «        \  ZgZhegehz   ZidS )né    )Úpartial)Úspecial)ÚentrÚ	logsumexpÚbetalnÚgammalnÚzeta)Ú
_lazywhereÚrng_integers)Úinterp1d)
ÚfloorÚceilÚlogÚexpÚsqrtÚlog1pÚexpm1ÚtanhÚcoshÚsinhNé   )Ú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    úR/granary/edev/quantum/lib/python3.11/site-packages/scipy/stats/_discrete_distns.pyÚ_shape_infozbinom_gen._shape_infoA   ó4   € Ý˜3  q­"¬& k°=ÑAÔAÝ˜3  v¨|Ñ<Ô<ð>ð 	>ó    Nc                 ó0   — |                      |||¦  «        S ©N)Úbinomial©r/   r&   r(   ÚsizeÚrandom_states        r0   Ú_rvszbinom_gen._rvsE   s   € Ø×$Ò$ Q¨¨4Ñ0Ô0Ð0r3   c                 óJ   — |dk    t          |¦  «        z  |dk    z  |dk    z  S ©Nr   r   ©r   ©r/   r&   r(   s      r0   Ú	_argcheckzbinom_gen._argcheckH   s)   € Ø�Q’�+ a™.œ.Ñ(¨A°ªFÑ3°q¸A²vÑ>Ð>r3   c                 ó   — | j         |fS r5   ©Úar>   s      r0   Ú_get_supportzbinom_gen._get_supportK   s   € ØŒv�qˆyÐr3   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         r0   Ú_logpmfzbinom_gen._logpmfN   sl   € Ý�!‰HŒHˆÝ˜˜1™‘:”:¥ q¨¡s¡¤­e°A°a±C¸±E©l¬lÑ!:Ñ;ˆØ�œ q¨!Ñ,Ô,Ñ,­w¬¸qÀ¹sÀQÀBÑ/GÔ/GÑGÐGr3   c                 ó.   — t          j        |||¦  «        S r5   )ÚscuÚ
_binom_pmf©r/   rI   r&   r(   s       r0   Ú_pmfzbinom_gen._pmfS   s   € åŒ~˜a  AÑ&Ô&Ð&r3   c                 óL   — t          |¦  «        }t          j        |||¦  «        S r5   )r   rN   Ú
_binom_cdf©r/   rI   r&   r(   rJ   s        r0   Ú_cdfzbinom_gen._cdfW   ó!   € Ý�!‰HŒHˆÝŒ~˜a  AÑ&Ô&Ð&r3   c                 óL   — t          |¦  «        }t          j        |||¦  «        S r5   )r   rN   Ú	_binom_sfrT   s        r0   Ú_sfzbinom_gen._sf[   s!   € Ý�!‰HŒHˆÝŒ}˜Q  1Ñ%Ô%Ð%r3   c                 ó.   — t          j        |||¦  «        S r5   )rN   Ú
_binom_isfrP   s       r0   Ú_isfzbinom_gen._isf_   ó   € ÝŒ~˜a  AÑ&Ô&Ð&r3   c                 ó.   — t          j        |||¦  «        S r5   )rN   Ú
_binom_ppf©r/   Úqr&   r(   s       r0   Ú_ppfzbinom_gen._ppfb   r]   r3   Ú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ç       @rJ   ç      @)r,   Úsquarer   Ú
reciprocal)r/   r&   r(   ÚmomentsÚmuÚvarÚg1Úg2ÚpqÚnpq_sqrtÚt1Út2Únpqs                r0   Ú_statszbinom_gen._statse   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ˆÐr3   c                 ó¤   — t           j        d|dz   …         }|                      |||¦  «        }t          j        t	          |¦  «        d¬¦  «        S )Nr   r   ©Úaxis)r,   Úr_rQ   Úsumr   )r/   r&   r(   rJ   Úvalss        r0   Ú_entropyzbinom_gen._entropyw   sE   € ÝŒE�!�A˜‘E�'ŒNˆØ�yŠy˜˜A˜qÑ!Ô!ˆÝŒv•d˜4‘j”j qÐ)Ñ)Ô)Ð)r3   re   ©rc   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r1   r:   r?   rC   rL   rQ   rU   rY   r\   rb   ru   r|   © r3   r0   r#   r#      sà   € € € € € ð"ð "ðF>ð >ð >ð1ð 1ð 1ð 1ð?ð ?ð ?ðð ð ðHð Hð Hð
'ð 'ð 'ð'ð 'ð 'ð&ð &ð &ð'ð 'ð 'ð'ð 'ð 'ðð ð ð ð$*ð *ð *ð *ð *r3   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    r0   r1   zbernoulli_gen._shape_info™   ó   € Ý˜3  v¨|Ñ<Ô<Ð=Ð=r3   Nc                 ó@   — t                                | d|||¬¦  «        S )Nr   ©r8   r9   )r#   r:   ©r/   r(   r8   r9   s       r0   r:   zbernoulli_gen._rvsœ   s   € Ý�~Š~˜d A q¨tÀ,ˆ~ÑOÔOÐOr3   c                 ó   — |dk    |dk    z  S r<   rƒ   ©r/   r(   s     r0   r?   zbernoulli_gen._argcheckŸ   s   € Ø�Q’˜1 š6Ñ"Ð"r3   c                 ó   — | j         | j        fS r5   )rB   Úbr�   s     r0   rC   zbernoulli_gen._get_support¢   s   € àŒv�t”vˆ~Ðr3   c                 ó:   — t                                |d|¦  «        S rE   )r„   rL   ©r/   rI   r(   s      r0   rL   zbernoulli_gen._logpmf¦   s   € Ý�}Š}˜Q  1Ñ%Ô%Ð%r3   c                 ó:   — t                                |d|¦  «        S rE   )r„   rQ   r”   s      r0   rQ   zbernoulli_gen._pmf©   s   € õ �zŠz˜!˜Q Ñ"Ô"Ð"r3   c                 ó:   — t                                |d|¦  «        S rE   )r„   rU   r”   s      r0   rU   zbernoulli_gen._cdf®   ó   € Ý�zŠz˜!˜Q Ñ"Ô"Ð"r3   c                 ó:   — t                                |d|¦  «        S rE   )r„   rY   r”   s      r0   rY   zbernoulli_gen._sf±   s   € Ý�yŠy˜˜A˜qÑ!Ô!Ð!r3   c                 ó:   — t                                |d|¦  «        S rE   )r„   r\   r”   s      r0   r\   zbernoulli_gen._isf´   r—   r3   c                 ó:   — t                                |d|¦  «        S rE   )r„   rb   )r/   ra   r(   s      r0   rb   zbernoulli_gen._ppf·   r—   r3   c                 ó8   — t                                d|¦  «        S rE   )r„   ru   r�   s     r0   ru   zbernoulli_gen._statsº   s   € Ý�|Š|˜A˜qÑ!Ô!Ð!r3   c                 óF   — t          |¦  «        t          d|z
  ¦  «        z   S rE   )r   r�   s     r0   r|   zbernoulli_gen._entropy½   s   € Ý�A‰wŒw�˜a ™c™œÑ"Ð"r3   re   r~   rƒ   r3   r0   r‡   r‡   €   sÛ   € € € € € ðð ð0>ð >ð >ðPð Pð Pð Pð#ð #ð #ðð ð ð&ð &ð &ð#ð #ð #ð
#ð #ð #ð"ð "ð "ð#ð #ð #ð#ð #ð #ð"ð "ð "ð#ð #ð #ð #ð #r3   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.

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

    %(after_notes)s

    .. 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'   rB   F©FFr’   r+   r.   s    r0   r1   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r3   Nc                 ó^   — |                      |||¦  «        }|                     |||¦  «        S r5   )Úbetar6   ©r/   r&   rB   r’   r8   r9   r(   s          r0   r:   zbetabinom_gen._rvsí   s1   € Ø×Ò˜a  DÑ)Ô)ˆØ×$Ò$ Q¨¨4Ñ0Ô0Ð0r3   c                 ó
   — d|fS ©Nr   rƒ   ©r/   r&   rB   r’   s       r0   rC   zbetabinom_gen._get_supportñ   ó   € Ø�!ˆtˆr3   c                 óJ   — |dk    t          |¦  «        z  |dk    z  |dk    z  S r¨   r=   r©   s       r0   r?   zbetabinom_gen._argcheckô   ó)   € Ø�Q’�+ a™.œ.Ñ(¨A°ªEÑ2°a¸!²eÑ<Ð<r3   c                 óÔ   — t          |¦  «        }t          |dz   ¦  «         t          ||z
  dz   |dz   ¦  «        z
  }|t          ||z   ||z
  |z   ¦  «        z   t          ||¦  «        z
  S rE   )r   r   r   ©r/   rI   r&   rB   r’   rJ   rK   s          r0   rL   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Ñ@Ð@r3   c                 óL   — t          |                      ||||¦  «        ¦  «        S r5   ©r   rL   ©r/   rI   r&   rB   r’   s        r0   rQ   zbetabinom_gen._pmfü   ó"   € Ý�4—<’<  1 a¨Ñ+Ô+Ñ,Ô,Ð,r3   rc   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   re   rf   ç      ð?é   rJ   é   é   é   )r   ÚastypeÚdtype)r/   r&   rB   r’   rk   Úe_pÚe_qrl   rm   rn   ro   s              r0   ru   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ˆÐr3   re   r}   )r   r€   r�   r‚   r1   r:   rC   r?   rL   rQ   ru   rƒ   r3   r0   rŸ   rŸ   Ä   s˜   € € € € € ð"ð "ðFEð Eð Eð
1ð 1ð 1ð 1ðð ð ð=ð =ð =ðAð Að Að
-ð -ð -ðð ð ð ð ð r3   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    r0   r1   znbinom_gen._shape_infoT  r2   r3   Nc                 ó0   — |                      |||¦  «        S r5   )Únegative_binomialr7   s        r0   r:   znbinom_gen._rvsX  s   € Ø×-Ò-¨a°°DÑ9Ô9Ð9r3   c                 ó*   — |dk    |dk    z  |dk    z  S r<   rƒ   r>   s      r0   r?   znbinom_gen._argcheck[  s   € Ø�A’˜!˜aš%Ñ  A¨¢FÑ+Ð+r3   c                 ó.   — t          j        |||¦  «        S r5   )rN   Ú_nbinom_pmfrP   s       r0   rQ   znbinom_gen._pmf^  s   € åŒ˜q ! QÑ'Ô'Ð'r3   c                 óÄ   — t          ||z   ¦  «        t          |dz   ¦  «        z
  t          |¦  «        z
  }||t          |¦  «        z  z   t          j        || ¦  «        z   S rE   )rF   r   r   rH   )r/   rI   r&   r(   Úcoeffs        r0   rL   znbinom_gen._logpmfb  sS   € Ý�a˜‘c‘
”
�U 1 Q¡3™ZœZÑ'­%°©(¬(Ñ2ˆØ�q�˜Q™œ‘xÑ¥'¤/°!°a°RÑ"8Ô"8Ñ8Ð8r3   c                 óL   — t          |¦  «        }t          j        |||¦  «        S r5   )r   rN   Ú_nbinom_cdfrT   s        r0   rU   znbinom_gen._cdff  s!   € Ý�!‰HŒHˆÝŒ˜q ! QÑ'Ô'Ð'r3   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 rE   )r,   r   r   Úbetainc)rJ   r&   r(   s      r0   Úf1znbinom_gen._logcdf.<locals>.f1o  s+   € Ý”8�Wœ_¨Q°©U°A°q¸1±uÑ=Ô=Ð=Ñ>Ô>Ð>r3   Úignore)Údivide)r   r,   Úbroadcast_arraysrU   Úerrstater   )	r/   rI   r&   r(   rJ   ÚcdfÚcondrÎ   Úlogcdfs	            r0   Ú_logcdfznbinom_gen._logcdfj  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 r5   )r   rN   Ú
_nbinom_sfrT   s        r0   rY   znbinom_gen._sfy  rV   r3   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Ò   rN   Ú_nbinom_isfrP   s       r0   r\   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Ò   rN   Ú_nbinom_ppfr`   s       r0   rb   znbinom_gen._ppf�  rÞ   rß   c                 ó¦   — t          j        ||¦  «        t          j        ||¦  «        t          j        ||¦  «        t          j        ||¦  «        fS r5   )rN   Ú_nbinom_meanÚ_nbinom_varianceÚ_nbinom_skewnessÚ_nbinom_kurtosis_excessr>   s      r0   ru   znbinom_gen._stats…  sL   € åÔ˜Q Ñ"Ô"ÝÔ   AÑ&Ô&ÝÔ   AÑ&Ô&ÝÔ'¨¨1Ñ-Ô-ð	
ð 	
r3   re   )r   r€   r�   r‚   r1   r:   r?   rQ   rL   rU   rÖ   rY   r\   rb   ru   rƒ   r3   r0   r¿   r¿     sÉ   € € € € € ð9ð 9ðt>ð >ð >ð:ð :ð :ð :ð,ð ,ð ,ð(ð (ð (ð9ð 9ð 9ð(ð (ð (ðð ð ð'ð 'ð 'ð,ð ,ð ,ð,ð ,ð ,ð
ð 
ð 
ð 
ð 
r3   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.

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

    %(after_notes)s

    .. 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    r0   r1   zbetanbinom_gen._shape_info¶  r£   r3   Nc                 ó^   — |                      |||¦  «        }|                     |||¦  «        S r5   )r¥   rÂ   r¦   s          r0   r:   zbetanbinom_gen._rvs»  s1   € Ø×Ò˜a  DÑ)Ô)ˆØ×-Ò-¨a°°DÑ9Ô9Ð9r3   c                 óJ   — |dk    t          |¦  «        z  |dk    z  |dk    z  S r¨   r=   r©   s       r0   r?   zbetanbinom_gen._argcheck¿  r¬   r3   c                 óÌ   — t          |¦  «        }t          j        ||z   ¦  «         t          ||dz   ¦  «        z
  }|t          ||z   ||z   ¦  «        z   t          ||¦  «        z
  S rE   )r   r,   r   r   r®   s          r0   rL   zbetanbinom_gen._logpmfÂ  s]   € Ý�!‰HŒHˆÝ”6˜!˜a™%‘=”=�.¥6¨!¨Q°©UÑ#3Ô#3Ñ3ˆØ�  A¡ q¨1¡uÑ-Ô-Ñ-µ°q¸!±´Ñ<Ð<r3   c                 óL   — t          |                      ||||¦  «        ¦  «        S r5   r°   r±   s        r0   rQ   zbetanbinom_gen._pmfÇ  r²   r3   rc   c                 ó`  — d„ }t          |dk    |||f|t          j        ¬¦  «        }d„ }t          |dk    |||f|t          j        ¬¦  «        }d\  }}	d„ }
d|v r$t          |d	k    |||f|
t          j        ¬¦  «        }d
„ }d|v r$t          |dk    |||f|t          j        ¬¦  «        }	||||	fS )Nc                 ó   — | |z  |dz
  z  S ©Nr´   rƒ   ©r&   rB   r’   s      r0   Úmeanz#betanbinom_gen._stats.<locals>.meanÍ  s   € Ø�q‘5˜A ™FÑ#Ð#r3   r   )ÚfÚ	fillvaluec                 óN   — | |z  | |z   dz
  z  ||z   dz
  z  |dz
  |dz
  dz  z  z  S )Nr´   rg   rƒ   rò   s      r0   rm   z"betanbinom_gen._stats.<locals>.varÐ  sA   € Ø˜‘E˜Q ™U R™ZÑ(¨A°©E°B©JÑ7Ø˜B™ 1 r¡6¨B¡,Ñ.ñ0ð 1r3   rµ   re   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´   ç      @rg   ©r   rò   s      r0   Ú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ñ'ñ " ô " ñ ð !r3   rf   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 )
Nrg   r´   r¶   rh   rø   ç      @rµ   r·   g      @rƒ   )r&   rB   r’   ÚtermÚterm_2Údenominators         r0   Ú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Ð3r3   rJ   é   ©r
   r,   r-   )r/   r&   rB   r’   rk   ró   rl   rm   rn   ro   rú   r   s               r0   ru   zbetanbinom_gen._statsÊ  sõ   € ð	$ð 	$ð 	$å˜˜Aš  1 a˜y¨D½B¼FÐCÑCÔCˆð	1ð 	1ð 	1õ ˜˜Qš  A q 	¨S½B¼FÐCÑCÔCˆØ‰ˆˆBð	!ð 	!ð 	!ð �'ˆ>ˆ>Ý˜A šE A q¨! 9°ÅÄÐGÑGÔGˆBð	4ð 	4ð 	4ð �'ˆ>ˆ>Ý˜A šE A q¨! 9°ÅBÄFÐKÑKÔKˆBØ�3˜˜BˆÐr3   re   r}   )
r   r€   r�   r‚   r1   r:   r?   rL   rQ   ru   rƒ   r3   r0   ré   ré   ‘  s†   € € € € € ð#ð #ðHEð Eð Eð
:ð :ð :ð :ð=ð =ð =ð=ð =ð =ð
-ð -ð -ð!ð !ð !ð !ð !ð !r3   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    r0   r1   zgeom_gen._shape_info  r‹   r3   Nc                 ó    — |                      ||¬¦  «        }t          j        |j        ¦  «        j        }t          j        |dk     ||¦  «        S )N©r8   r   )Ú	geometricr,   Úiinforº   ÚmaxÚwhere)r/   r(   r8   r9   ÚresÚmax_ints         r0   r:   zgeom_gen._rvs  sH   € Ø×$Ò$ Q¨TÐ$Ñ2Ô2ˆõ ”(˜3œ9Ñ%Ô%Ô)ˆÝŒx˜˜aš ¨#Ñ.Ô.Ð.r3   c                 ó   — |dk    |dk    z  S ©Nr   r   rƒ   r�   s     r0   r?   zgeom_gen._argcheck  s   € Ø�Q’˜1˜qš5Ñ!Ð!r3   c                 ó>   — t          j        d|z
  |dz
  ¦  «        |z  S rE   )r,   Úpower©r/   rJ   r(   s      r0   rQ   zgeom_gen._pmf   s!   € ÝŒx˜˜!™˜Q˜q™SÑ!Ô! AÑ%Ð%r3   c                 óT   — t          j        |dz
  | ¦  «        t          |¦  «        z   S rE   )r   rH   r   r  s      r0   rL   zgeom_gen._logpmf#  s%   € ÝŒ˜q 1™u q bÑ)Ô)­C°©F¬FÑ2Ð2r3   c                 ób   — t          |¦  «        }t          t          | ¦  «        |z  ¦  «         S r5   )r   r   r   ©r/   rI   r(   rJ   s       r0   rU   zgeom_gen._cdf&  s*   € Ý�!‰HŒHˆÝ•e˜Q˜B‘i”i ‘kÑ"Ô"Ð"Ð"r3   c                 óR   — t          j        |                      ||¦  «        ¦  «        S r5   )r,   r   Ú_logsfr”   s      r0   rY   zgeom_gen._sf*  s    € ÝŒv�d—k’k ! QÑ'Ô'Ñ(Ô(Ð(r3   c                 óF   — t          |¦  «        }|t          | ¦  «        z  S r5   )r   r   r  s       r0   r  zgeom_gen._logsf-  s   € Ý�!‰HŒHˆØ•˜�r‘”‰{Ðr3   c                 óØ   — t          t          | ¦  «        t          | ¦  «        z  ¦  «        }|                      |dz
  |¦  «        }t          j        ||k    |dk    z  |dz
  |¦  «        S r  )r   r   rU   r,   r  )r/   ra   r(   r{   Útemps        r0   rb   zgeom_gen._ppf1  s`   € Ý•E˜1˜"‘I”I¥ q b¡	¤	Ñ)Ñ*Ô*ˆØ�yŠy˜˜a™ Ñ#Ô#ˆÝŒx˜ š t¨a¢xÑ0°$°q±&¸$Ñ?Ô?Ð?r3   c                 ó–   — d|z  }d|z
  }||z  |z  }d|z
  t          |¦  «        z  }t          j        g d¢|¦  «        d|z
  z  }||||fS )Nr´   rg   )r   iúÿÿÿr¶   )r   r,   Úpolyval)r/   r(   rl   Úqrrm   rn   ro   s          r0   ru   zgeom_gen._stats6  sa   € Ø�‰UˆØ�‰UˆØ�1‰f�q‰jˆØ�!‰e•t˜B‘x”xÑˆÝŒZ˜
˜
˜
 AÑ&Ô&¨¨A©Ñ.ˆØ�3˜˜BˆÐr3   c                 ój   — t          j        |¦  «         t          j        | ¦  «        d|z
  z  |z  z
  S rñ   )r,   r   r   r�   s     r0   r|   zgeom_gen._entropy>  s/   € Ý”�q‘	”	ˆz�BœH a R™LœL¨C°©EÑ2°QÑ6Ñ6Ð6r3   re   )r   r€   r�   r‚   r1   r:   r?   rQ   rL   rU   rY   r  rb   ru   r|   rƒ   r3   r0   r  r  ñ  sÌ   € € € € € ðð ðB>ð >ð >ð/ð /ð /ð /ð"ð "ð "ð&ð &ð &ð3ð 3ð 3ð#ð #ð #ð)ð )ð )ðð ð ð@ð @ð @ð
ð ð ð7ð 7ð 7ð 7ð 7r3   r  ÚgeomzA geometric)rB   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    r0   r1   zhypergeom_gen._shape_info�  óS   € Ý˜3  q­"¬& k°=ÑAÔAÝ˜3  q­"¬& k°=ÑAÔAÝ˜3  q­"¬& k°=ÑAÔAðCð 	Cr3   Nc                 ó:   — |                      |||z
  ||¬¦  «        S ©Nr  )Úhypergeometric)r/   r%  r&   r&  r8   r9   s         r0   r:   zhypergeom_gen._rvs”  s#   € Ø×*Ò*¨1¨a°©c°1¸4Ð*Ñ@Ô@Ð@r3   c                 ób   — t          j        |||z
  z
  d¦  «        t          j        ||¦  «        fS r¨   ©r,   ÚmaximumÚminimum)r/   r%  r&   r&  s       r0   rC   zhypergeom_gen._get_support—  s-   € ÝŒz˜!˜Q˜q™S™' 1Ñ%Ô%¥r¤z°!°QÑ'7Ô'7Ð7Ð7r3   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        r0   r?   zhypergeom_gen._argcheckš  s_   € Ø�A’˜!˜qš&Ñ! Q¨!¢VÑ,ˆØ��a’˜A šFÑ#Ñ#ˆØ•˜A‘”¥¨Q¡¤Ñ/µ+¸a±.´.Ñ@Ñ@ˆØˆr3   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 rE   ©r   )	r/   rJ   r%  r&   r&  ÚtotÚgoodÚbadÚresults	            r0   rL   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™ Ñ"Ô"ñ#ˆð ˆr3   c                 ó0   — t          j        ||||¦  «        S r5   )rN   Ú_hypergeom_pmf©r/   rJ   r%  r&   r&  s        r0   rQ   zhypergeom_gen._pmf¨  ó   € ÝÔ! ! Q¨¨1Ñ-Ô-Ð-r3   c                 ó0   — t          j        ||||¦  «        S r5   )rN   Ú_hypergeom_cdfr8  s        r0   rU   zhypergeom_gen._cdf«  r9  r3   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   rh   rü   r¶   rg   rø   )rN   Ú_hypergeom_meanÚ_hypergeom_varianceÚ_hypergeom_skewness)r/   r%  r&   r&  Úmro   s         r0   ru   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¨!Ñ,Ô,Øð	
ð 	
r3   c                 óÎ   — t           j        |||z
  z
  t          ||¦  «        dz   …         }|                      ||||¦  «        }t          j        t          |¦  «        d¬¦  «        S )Nr   r   rw   )r,   ry   ÚminÚpmfrz   r   )r/   r%  r&   r&  rJ   r{   s         r0   r|   zhypergeom_gen._entropy¿  sY   € ÝŒE�!�q˜1‘u‘+�c ! Q™iœi¨!™mÐ+Ô,ˆØ�xŠx˜˜1˜a Ñ#Ô#ˆÝŒv•d˜4‘j”j qÐ)Ñ)Ô)Ð)r3   c                 ó0   — t          j        ||||¦  «        S r5   )rN   Ú_hypergeom_sfr8  s        r0   rY   zhypergeom_gen._sfÄ  s   € ÝÔ   A q¨!Ñ,Ô,Ð,r3   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   rL   Úasarray©r/   rJ   r%  r&   r&  r  Úquantr2  r3  ÚdrawÚk2s              r0   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˜#‰ŒÐr3   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   rL   rJ  rK  s              r0   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˜#‰ŒÐr3   re   )r   r€   r�   r‚   r1   r:   rC   r?   rL   rQ   rU   ru   r|   rY   r  rÖ   rƒ   r3   r0   r#  r#  E  sá   € € € € € ðHð HðRCð Cð Cð
Að Að Að Að8ð 8ð 8ðð ð ðð ð ð.ð .ð .ð.ð .ð .ð
ð 
ð 
ð"*ð *ð *ð
-ð -ð -ð
ð 
ð 
ð
ð 
ð 
ð 
ð 
r3   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    r0   r1   znhypergeom_gen._shape_infoH  r'  r3   c                 ó
   — d|fS r¨   rƒ   )r/   r%  r&   rU  s       r0   rC   znhypergeom_gen._get_supportM  rª   r3   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        r0   r?   znhypergeom_gen._argcheckP  sU   € Ø�Q’˜1 š6Ñ" a¨1¢fÑ-°°a¸±c²Ñ:ˆØ•˜A‘”¥¨Q¡¤Ñ/µ+¸a±.´.Ñ@Ñ@ˆØˆr3   Nc                 óH   ‡ — t           ˆ fd„¦   «         } ||||||¬¦  «        S )Nc                 ó\  •— ‰                      | ||¦  «        \  }}t          j        ||dz   ¦  «        }‰                     || ||¦  «        }t	          ||dd¬¦  «        }	 |	|                     |¬¦  «        ¦  «                             t          ¦  «        }
|€|
                     ¦   «         S |
S )Nr   ÚnextÚextrapolate)ÚkindÚ
fill_valuer  )	Úsupportr,   rI  rÓ   r   Úuniformr¹   ÚintÚitem)r%  r&   rU  r8   r9   rB   r’   ÚksrÓ   ÚppfÚrvsr/   s              €r0   Ú_rvs1z"nhypergeom_gen._rvs.<locals>._rvs1W  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Ð!ØˆJr3   r�   ©r   )r/   r%  r&   rU  r8   r9   re  s   `      r0   r:   znhypergeom_gen._rvsU  sD   ø€ å	#ð		ð 		ð 		ð 		ñ 
$Ô	#ð		ð ˆu�Q˜˜1 4°lÐCÑCÔCÐCr3   c                 óR   — |dk    |dk    z  }t          | ||||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 rE   r1  )rJ   r%  r&   rU  s       r0   ú<lambda>z(nhypergeom_gen._logpmf.<locals>.<lambda>h  s¡   € Ý"(¨¨1©¨a¡.¤. µ6¸!¸A¹#¸q±>´>Ñ!AÝ!'¨¨!©¨A©¨q°©s°1©u°Q©wÑ!7Ô!7ñ"8Ý:@ÀÀ1ÁÀQÁÀqÁÈ!Ñ:LÔ:Lñ"Må!'¨¨!©¨Q¨q©S°©UÑ!3Ô!3ñ"4å6<¸Q¸q¹SÀ!±n´nñ"Eð r3   ç        )rõ   )r
   )r/   rJ   r%  r&   rU  rÔ   r5  s          r0   rL   znhypergeom_gen._logpmfe  sN   € Ø�a’˜A šFÑ#ˆÝ˜T˜E A q¨!¨Q <ðFð Fð '*ð+ñ +ô +ˆð ˆr3   c                 óL   — t          |                      ||||¦  «        ¦  «        S r5   r°   )r/   rJ   r%  r&   rU  s        r0   rQ   znhypergeom_gen._pmfo  s$   € õ �4—<’<  1 a¨Ñ+Ô+Ñ,Ô,Ð,r3   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µ   re   rƒ   )r/   r%  r&   rU  rl   rm   rn   ro   s           r0   ru   znhypergeom_gen._statst  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ˆÐr3   re   )r   r€   r�   r‚   r1   rC   r?   r:   rL   rQ   ru   rƒ   r3   r0   rS  rS  ã  s–   € € € € € ðbð bðHCð Cð Cð
ð ð ðð ð ð
Dð Dð Dð Dð ð ð ð-ð -ð -ð
ð ð ð ð r3   rS  Ú
nhypergeomc                   ó2   — e Zd ZdZd„ Zd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    r0   r1   zlogser_gen._shape_infoŸ  r‹   r3   Nc                 ó0   — |                      ||¬¦  «        S r)  )Ú	logseriesrŽ   s       r0   r:   zlogser_gen._rvs¢  s   € ð ×%Ò% a¨dÐ%Ñ3Ô3Ð3r3   c                 ó   — |dk    |dk     z  S r<   rƒ   r�   s     r0   r?   zlogser_gen._argcheck§  s   € Ø�A’˜!˜aš%Ñ Ð r3   c                 óf   — t          j        ||¦  «         dz  |z  t          j        | ¦  «        z  S rñ   )r,   r  r   r   r  s      r0   rQ   zlogser_gen._pmfª  s/   € å”˜˜A‘”ˆ Ñ$ qÑ(­7¬=¸!¸Ñ+<Ô+<Ñ<Ð<r3   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  rl   Úmu2prm   Úmu3pÚmu3rn   Úmu4pÚmu4ro   s               r0   ru   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ˆÐr3   re   )	r   r€   r�   r‚   r1   r:   r?   rQ   ru   rƒ   r3   r0   ro  ro  †  sn   € € € € € ðð ð0>ð >ð >ð4ð 4ð 4ð 4ð
!ð !ð !ð=ð =ð =ðð ð ð ð r3   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 )Nrl   Fr   r'   r+   r.   s    r0   r1   zpoisson_gen._shape_infoÚ  s   € Ý˜4 ¨­B¬F¨°]ÑCÔCÐDÐDr3   c                 ó   — |dk    S r¨   rƒ   )r/   rl   s     r0   r?   zpoisson_gen._argcheckÞ  s   € Ø�QŠwˆr3   Nc                 ó.   — |                      ||¦  «        S r5   ©Úpoisson)r/   rl   r8   r9   s       r0   r:   zpoisson_gen._rvsá  s   € Ø×#Ò# B¨Ñ-Ô-Ð-r3   c                 ó\   — t          j        ||¦  «        t          |dz   ¦  «        z
  |z
  }|S rE   )r   rG   rF   )r/   rJ   rl   ÚPks       r0   rL   zpoisson_gen._logpmfä  s,   € ÝŒ]˜1˜bÑ!Ô!¥E¨!¨a©%¡L¤LÑ0°2Ñ5ˆØˆ	r3   c                 óH   — t          |                      ||¦  «        ¦  «        S r5   r°   )r/   rJ   rl   s      r0   rQ   zpoisson_gen._pmfè  s   € å�4—<’<  2Ñ&Ô&Ñ'Ô'Ð'r3   c                 óJ   — t          |¦  «        }t          j        ||¦  «        S r5   )r   r   Úpdtr©r/   rI   rl   rJ   s       r0   rU   zpoisson_gen._cdfì  s   € Ý�!‰HŒHˆÝŒ|˜A˜rÑ"Ô"Ð"r3   c                 óJ   — t          |¦  «        }t          j        ||¦  «        S r5   )r   r   Úpdtrcr‰  s       r0   rY   zpoisson_gen._sfð  s   € Ý�!‰HŒHˆÝŒ}˜Q Ñ#Ô#Ð#r3   c                 óÔ   — t          t          j        ||¦  «        ¦  «        }t          j        |dz
  d¦  «        }t          j        ||¦  «        }t          j        ||k    ||¦  «        S r  )r   r   Úpdtrikr,   r-  rˆ  r  )r/   ra   rl   r{   Úvals1r  s         r0   rb   zpoisson_gen._ppfô  sY   € Ý•G”N 1 bÑ)Ô)Ñ*Ô*ˆÝ”
˜4 !™8 QÑ'Ô'ˆÝŒ|˜E 2Ñ&Ô&ˆÝŒx˜ š	 5¨$Ñ/Ô/Ð/r3   c                 ó¾   — |}t          j        |¦  «        }|dk    }t          ||fd„ t           j        ¦  «        }t          ||fd„ t           j        ¦  «        }||||fS )Nr   c                 ó&   — t          d| z  ¦  «        S rñ   rù   ©rI   s    r0   ri  z$poisson_gen._stats.<locals>.<lambda>þ  s   € µd¸3¸q¹5±k´k€ r3   c                 ó   — d| z  S rñ   rƒ   r‘  s    r0   ri  z$poisson_gen._stats.<locals>.<lambda>ÿ  s
   € °c¸!±e€ r3   )r,   rJ  r
   r-   )r/   rl   rm   ÚtmpÚ
mu_nonzerorn   ro   s          r0   ru   zpoisson_gen._statsú  s_   € ØˆÝŒj˜‰nŒnˆØ˜1’Wˆ
Ý˜
 S FÐ,AÐ,AÅ2Ä6ÑJÔJˆÝ˜
 S F¨O¨O½R¼VÑDÔDˆØ�3˜˜BˆÐr3   re   )r   r€   r�   r‚   r1   r?   r:   rL   rQ   rU   rY   rb   ru   rƒ   r3   r0   r~  r~  Á  s­   € € € € € ðð ð0Eð Eð Eðð ð ð.ð .ð .ð .ðð ð ð(ð (ð (ð#ð #ð #ð$ð $ð $ð0ð 0ð 0ðð ð ð ð r3   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ÚlambdaFr   r¢   r+   r.   s    r0   r1   zplanck_gen._shape_info"  s   € Ý˜8 U¨Qµ´¨K¸ÑHÔHÐIÐIr3   c                 ó   — |dk    S r¨   rƒ   )r/   Úlambda_s     r0   r?   zplanck_gen._argcheck%  s   € Ø˜Š{Ðr3   c                 óL   — t          | ¦  «         t          | |z  ¦  «        z  S r5   )r   r   )r/   rJ   rš  s      r0   rQ   zplanck_gen._pmf(  s$   € Ý�w�h‘”Ð¥ W H¨Q¡J¡¤Ñ/Ð/r3   c                 óN   — t          |¦  «        }t          | |dz   z  ¦  «         S rE   )r   r   ©r/   rI   rš  rJ   s       r0   rU   zplanck_gen._cdf+  s(   € Ý�!‰HŒHˆÝ�w�h  !¡‘nÑ%Ô%Ð%Ð%r3   c                 óH   — t          |                      ||¦  «        ¦  «        S r5   )r   r  )r/   rI   rš  s      r0   rY   zplanck_gen._sf/  s   € Ý�4—;’;˜q 'Ñ*Ô*Ñ+Ô+Ð+r3   c                 ó2   — t          |¦  «        }| |dz   z  S rE   ©r   r�  s       r0   r  zplanck_gen._logsf2  s   € Ý�!‰HŒHˆØˆx˜˜1™‰~Ðr3   c                 óî   — t          d|z  t          | ¦  «        z  dz
  ¦  «        } |dz
  j        |                      |¦  «        Ž }|                      ||¦  «        }t          j        ||k    ||¦  «        S )Nç      ð¿r   )r   r   ÚcliprC   rU   r,   r  )r/   ra   rš  r{   rŽ  r  s         r0   rb   zplanck_gen._ppf6  sp   € Ý�D˜‘L¥5¨!¨¡9¤9Ñ,¨QÑ.Ñ/Ô/ˆØ��a‘” × 1Ò 1°'Ñ :Ô :Ð<ˆØ�yŠy˜ Ñ(Ô(ˆÝŒx˜ š	 5¨$Ñ/Ô/Ð/r3   Nc                 óX   — t          | ¦  «         }|                     ||¬¦  «        dz
  S )Nr  r´   )r   r	  )r/   rš  r8   r9   r(   s        r0   r:   zplanck_gen._rvs<  s0   € å�G�8‰_Œ_ÐˆØ×%Ò% a¨dÐ%Ñ3Ô3°cÑ9Ð9r3   c                 óÎ   — dt          |¦  «        z  }t          | ¦  «        t          | ¦  «        dz  z  }dt          |dz  ¦  «        z  }ddt          |¦  «        z  z   }||||fS )Nr   rµ   rg   r  )r   r   r   )r/   rš  rl   rm   rn   ro   s         r0   ru   zplanck_gen._statsA  si   € Ø�u�W‰~Œ~ÑˆÝ�7�(‰mŒm�U G 8™_œ_¨qÑ0Ñ0ˆØ�t�G˜C‘KÑ Ô Ñ ˆØˆq•�g‘”‰ÑˆØ�3˜˜BˆÐr3   c                 óp   — t          | ¦  «         }|t          | ¦  «        z  |z  t          |¦  «        z
  S r5   )r   r   r   )r/   rš  ÚCs      r0   r|   zplanck_gen._entropyH  s5   € Ý�G�8‰_Œ_ÐˆØ•s˜G˜8‘}”}Ñ$ QÑ&­¨Q©¬Ñ/Ð/r3   re   )r   r€   r�   r‚   r1   r?   rQ   rU   rY   r  rb   r:   ru   r|   rƒ   r3   r0   r–  r–    s¼   € € € € € ðð ð6Jð Jð Jðð ð ð0ð 0ð 0ð&ð &ð &ð,ð ,ð ,ðð ð ð0ð 0ð 0ð:ð :ð :ð :ð
ð ð ð0ð 0ð 0ð 0ð 0r3   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    r0   r1   zboltzmann_gen._shape_infof  s<   € Ý˜9 e¨aµ´¨[¸.ÑIÔIÝ˜3  q­"¬& k°>ÑBÔBðDð 	Dr3   c                 ó<   — |dk    |dk    z  t          |¦  «        z  S r¨   r=   ©r/   rš  r&  s      r0   r?   zboltzmann_gen._argcheckj  s    € Ø˜!’  A¢Ñ&­°Q©¬Ñ7Ð7r3   c                 ó   — | j         |dz
  fS rE   rA   r­  s      r0   rC   zboltzmann_gen._get_supportm  s   € ØŒv�q˜1‘uˆ}Ðr3   c                 ó‚   — dt          | ¦  «        z
  dt          | |z  ¦  «        z
  z  }|t          | |z  ¦  «        z  S rE   ©r   )r/   rJ   rš  r&  Úfacts        r0   rQ   zboltzmann_gen._pmfp  sB   € ð •#�w�h‘-”-‘ !¥C¨¨°©
¡O¤OÑ"3Ñ4ˆØ•C˜˜ ™
‘O”OÑ#Ð#r3   c                 ó€   — t          |¦  «        }dt          | |dz   z  ¦  «        z
  dt          | |z  ¦  «        z
  z  S rE   )r   r   )r/   rI   rš  r&  rJ   s        r0   rU   zboltzmann_gen._cdfv  s@   € Ý�!‰HŒHˆØ•#�w�h  !¡‘nÑ%Ô%Ñ%¨­#¨w¨h°q©j©/¬/Ñ(9Ñ:Ð:r3   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¢  rj  )r   r   r   r£  r,   r-   rU   r  )r/   ra   rš  r&  Úqnewr{   rŽ  r  s           r0   rb   zboltzmann_gen._ppfz  sˆ   € Ø�!•C˜˜ ™
‘O”OÑ#Ñ$ˆÝ�D˜‘L¥3 q¨¡v¡;¤;Ñ.¨qÑ0Ñ1Ô1ˆØ�a‘—’˜c¥2¤6Ñ*Ô*ˆØ�yŠy˜ ¨Ñ+Ô+ˆÝŒx˜ š	 5¨$Ñ/Ô/Ð/r3   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·   rv  r  r°  )r/   rš  r&  ÚzÚzNrl   rm   ÚtrmÚtrm2rn   ro   s              r0   ru   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ˆÐr3   N)r   r€   r�   r‚   r1   r?   rC   rQ   rU   rb   ru   rƒ   r3   r0   rª  rª  P  sŠ   € € € € € ðð ð*Dð Dð Dð8ð 8ð 8ðð ð ð$ð $ð $ð;ð ;ð ;ð0ð 0ð 0ðð ð ð ð r3   rª  Ú	boltzmannz!A truncated discrete exponential )r…   rB   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    r0   r1   zrandint_gen._shape_infoÓ  sF   € Ý˜5 $­"¬&¨µ"´&Ð(9¸>ÑJÔJÝ˜6 4­2¬6¨'µ2´6Ð):¸NÑKÔKðMð 	Mr3   c                 óN   — ||k    t          |¦  «        z  t          |¦  «        z  S r5   r=   ©r/   r¾  r¿  s      r0   r?   zrandint_gen._argcheck×  s&   € Ø�s’
�k¨#Ñ.Ô.Ñ.µ¸TÑ1BÔ1BÑBÐBr3   c                 ó   — ||dz
  fS rE   rƒ   rÁ  s      r0   rC   zrandint_gen._get_supportÚ  s   € Ø�D˜‘Fˆ{Ðr3   c                 ó´   — t          j        |¦  «        t          j        |t           j        ¬¦  «        |z
  z  }t          j        ||k    ||k     z  |d¦  «        S )N©rº   rj  )r,   Ú	ones_likerJ  Úint64r  )r/   rJ   r¾  r¿  r(   s        r0   rQ   zrandint_gen._pmfÝ  sK   € åŒL˜‰OŒO�rœz¨$µb´hÐ?Ñ?Ô?À#ÑEÑFˆÝŒx˜˜cš a¨$¢hÑ/°°BÑ7Ô7Ð7r3   c                 ó<   — t          |¦  «        }||z
  dz   ||z
  z  S rñ   r   )r/   rI   r¾  r¿  rJ   s        r0   rU   zrandint_gen._cdfâ  s$   € Ý�!‰HŒHˆØ�C‘˜"‘ ¨¡Ñ,Ð,r3   c                 óÌ   — t          |||z
  z  |z   ¦  «        dz
  }|dz
                       ||¦  «        }|                      |||¦  «        }t          j        ||k    ||¦  «        S rE   )r   r£  rU   r,   r  )r/   ra   r¾  r¿  r{   rŽ  r  s          r0   rb   zrandint_gen._ppfæ  sf   € Ý�A˜ ™Ñ$ sÑ*Ñ+Ô+¨aÑ/ˆØ˜‘—’  TÑ*Ô*ˆØ�yŠy˜  TÑ*Ô*ˆÝŒx˜ š	 5¨$Ñ/Ô/Ð/r3   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      (@rj  g333333ó¿)r,   rJ  )
r/   r¾  r¿  Úm2Úm1rl   Údrm   rn   ro   s
             r0   ru   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ˆÐr3   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  r8   r   Úbroadcast_toÚ	vectorizer   rº   r`  )r/   r¾  r¿  r8   r9   Úrandints         r0   r:   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Ñ!Ô!Ð!r3   c                 ó&   — t          ||z
  ¦  «        S r5   )r   rÁ  s      r0   r|   zrandint_gen._entropy  s   € Ý�4˜#‘:‰ŒÐr3   re   )r   r€   r�   r‚   r1   r?   rC   rQ   rU   rb   ru   r:   r|   rƒ   r3   r0   r¼  r¼  “  s±   € € € € € ð=ð =ð~Mð Mð MðCð Cð Cðð ð ð8ð 8ð 8ð
-ð -ð -ð0ð 0ð 0ðð ð ð"ð "ð "ð "ð"ð ð ð ð r3   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 )NrB   Fr   r¢   r+   r.   s    r0   r1   zzipf_gen._shape_info;  ó   € Ý˜3 ¨­2¬6 {°NÑCÔCÐDÐDr3   Nc                 ó0   — |                      ||¬¦  «        S r)  )Úzipf)r/   rB   r8   r9   s       r0   r:   zzipf_gen._rvs>  s   € Ø× Ò  ¨Ð Ñ.Ô.Ð.r3   c                 ó   — |dk    S rE   rƒ   ©r/   rB   s     r0   r?   zzipf_gen._argcheckA  s   € Ø�1Šuˆr3   c                 ó‚   — |                      t          j        ¦  «        }dt          j        |d¦  «        z  || z  z  }|S ©Nr´   r   )r¹   r,   Úfloat64r   r	   )r/   rJ   rB   r…  s       r0   rQ   zzipf_gen._pmfD  s;   € Ø�HŠH•R”ZÑ Ô ˆà•7”<  1Ñ%Ô%Ñ%¨¨A¨2©Ñ-ˆØˆ	r3   c                 óN   — t          ||dz   k    ||fd„ t          j        ¦  «        S )Nr   c                 ó^   — t          j        | |z
  d¦  «        t          j        | d¦  «        z  S rE   )r   r	   )rB   r&   s     r0   ri  z zipf_gen._munp.<locals>.<lambda>M  s'   € �œ a¨!¡e¨QÑ/Ô/µ'´,¸qÀ!Ñ2DÔ2DÑD€ r3   r  )r/   r&   rB   s      r0   Ú_munpzzipf_gen._munpJ  s0   € ÝØ��A‘ŠI˜˜1�vØDÐDÝŒFñô ð 	r3   re   )	r   r€   r�   r‚   r1   r:   r?   rQ   rà  rƒ   r3   r0   rÔ  rÔ    sr   € € € € € ð)ð )ðVEð Eð Eð/ð /ð /ð /ðð ð ðð ð ðð ð ð ð r3   rÔ  rØ  zA Zipfc                 óJ   — t          |d¦  «        t          || dz   ¦  «        z
  S )z"Generalized harmonic number, a > 1r   )r	   ©r&   rB   s     r0   Ú_gen_harmonic_gt1rã  T  s#   € õ ��1‰:Œ:�˜Q  !¡™œÑ$Ð$r3   c                 ó  — t          j        | ¦  «        s| S t          j        | ¦  «        }t          j        |t          ¬¦  «        }t          j        |ddt          ¬¦  «        D ]$}|| k    }||xx         d|||         z  z  z  cc<   Œ%|S )z#Generalized harmonic number, a <= 1rÄ  r   éÿÿÿÿr   )r,   r8   r  Ú
zeros_likeÚfloatrI  )r&   rB   Ún_maxÚoutÚiÚmasks         r0   Ú_gen_harmonic_leq1rì  Z  sŒ   € åŒ7�1‰:Œ:ð ØˆÝŒF�1‰IŒI€EÝ
Œ-˜¥Ð
'Ñ
'Ô
'€CåŒY�u˜a ­5Ð1Ñ1Ô1ð "ð "ˆØ�AŠvˆØˆDˆ	ˆ	Œ	�Q�q˜!˜Dœ'‘z‘\Ñ!ˆ	ˆ	‰	ˆ	Ø€Jr3   c                 óx   — t          j        | |¦  «        \  } }t          |dk    | |ft          t          ¬¦  «        S )zGeneralized harmonic numberr   ©rô   Úf2)r,   rÑ   r
   rã  rì  râ  s     r0   Ú_gen_harmonicrð  g  sE   € åÔ˜q !Ñ$Ô$�D€A€qÝ�a˜!’e˜a ˜VÝ)Õ.@ðBñ Bô Bð Br3   c                   ó<   — 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 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 )NrB   Fr   r'   r&   Tr¢   r+   r.   s    r0   r1   zzipfian_gen._shape_info�  s<   € Ý˜3 ¨­2¬6 {°MÑBÔBÝ˜3  q­"¬& k°>ÑBÔBðDð 	Dr3   c                 ó\   — |dk    |dk    z  |t          j        |t          ¬¦  «        k    z  S )Nr   rÄ  )r,   rJ  r`  ©r/   rB   r&   s      r0   r?   zzipfian_gen._argcheck¡  s.   € à�Q’˜1˜qš5Ñ! Q­"¬*°Q½cÐ*BÑ*BÔ*BÒ%BÑCÐCr3   c                 ó
   — d|fS rE   rƒ   rõ  s      r0   rC   zzipfian_gen._get_support¥  rª   r3   c                 ót   — |                      t          j        ¦  «        }dt          ||¦  «        z  || z  z  S rñ   )r¹   r,   rÝ  rð  ©r/   rJ   rB   r&   s       r0   rQ   zzipfian_gen._pmf¨  s5   € Ø�HŠH•R”ZÑ Ô ˆØ•] 1 aÑ(Ô(Ñ(¨1¨q¨b©5Ñ0Ð0r3   c                 óD   — t          ||¦  «        t          ||¦  «        z  S r5   ©rð  rø  s       r0   rU   zzipfian_gen._cdf¬  s!   € Ý˜Q Ñ"Ô"¥]°1°aÑ%8Ô%8Ñ8Ð8r3   c                 óŽ   — |dz   }||z  t          ||¦  «        t          ||¦  «        z
  z  dz   ||z  t          ||¦  «        z  z  S rE   rú  rø  s       r0   rY   zzipfian_gen._sf¯  sU   € Ø�‰Eˆà�A‘•} Q¨Ñ*Ô*­]¸1¸aÑ-@Ô-@Ñ@ÑAÀAÑEØ�a‘4� a¨Ñ+Ô+Ñ+ñ-ð 	.r3   c                 óÀ  — t          ||¦  «        }t          ||dz
  ¦  «        }t          ||dz
  ¦  «        }t          ||dz
  ¦  «        }t          ||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  rv  r¶   rú  )r/   rB   r&   ÚHnaÚHna1ÚHna2ÚHna3ÚHna4Úmu1Úmu2nÚmu2dÚmu2rn   ro   s                 r0   ru   zzipfian_gen._statsµ  s5  € å˜A˜qÑ!Ô!ˆÝ˜Q  !¡Ñ$Ô$ˆÝ˜Q  !¡Ñ$Ô$ˆÝ˜Q  !¡Ñ$Ô$ˆÝ˜Q  !¡Ñ$Ô$ˆØ�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ÐÐr3   N)r   r€   r�   r‚   r1   r?   rC   rQ   rU   rY   ru   rƒ   r3   r0   rò  rò  n  sŽ   € € € € € ð,ð ,ð\Dð Dð DðDð Dð Dðð ð ð1ð 1ð 1ð9ð 9ð 9ð.ð .ð .ð ð  ð  ð  ð  r3   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 )NrB   Fr   r¢   r+   r.   s    r0   r1   zdlaplace_gen._shape_infoá  rÖ  r3   c                 óh   — t          |dz  ¦  «        t          | t          |¦  «        z  ¦  «        z  S ©Nrg   )r   r   Úabs)r/   rJ   rB   s      r0   rQ   zdlaplace_gen._pmfä  s+   € å�A�c‘E‰{Œ{�S ! ¥c¨!¡f¤f¡Ñ-Ô-Ñ-Ð-r3   c                 ó^   — t          |¦  «        }d„ }d„ }t          |dk    ||f||¬¦  «        S )Nc                 óT   — dt          | | z  ¦  «        t          |¦  «        dz   z  z
  S rÜ  r°  ©rJ   rB   s     r0   rô   zdlaplace_gen._cdf.<locals>.fë  s(   € Ø�˜a˜R !™V™œ­¨A©¬°©
Ñ3Ñ3Ð3r3   c                 óR   — t          || dz   z  ¦  «        t          |¦  «        dz   z  S rE   r°  r  s     r0   rï  zdlaplace_gen._cdf.<locals>.f2î  s'   € Ý�q˜A ™E‘{Ñ#Ô#¥s¨1¡v¤v°¡zÑ2Ð2r3   r   rî  )r   r
   )r/   rI   rB   rJ   rô   rï  s         r0   rU   zdlaplace_gen._cdfè  sL   € Ý�!‰HŒHˆð	4ð 	4ð 	4ð	3ð 	3ð 	3õ ˜!˜qš& 1 a &¨A°"Ð5Ñ5Ô5Ð5r3   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   rU   )r/   ra   rB   Úconstr{   rŽ  s         r0   rb   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°%¸Ñ>Ô>Ð>r3   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 )Nrg   r´   rµ   g      $@r  rj  rø   r°  )r/   rB   Úear  r{  s        r0   ru   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Ð+Ð+r3   c                 óf   — |t          |¦  «        z  t          t          |dz  ¦  «        ¦  «        z
  S r  )r   r   r   rÚ  s     r0   r|   zdlaplace_gen._entropy  s)   € Ø•4˜‘7”7‰{�S¥ a¨¡e¡¤Ñ-Ô-Ñ-Ð-r3   Nc                 ó¸   — t          j        t          j        |¦  «         ¦  «         }|                     ||¬¦  «        }|                     ||¬¦  «        }||z
  S r)  )r,   r   rJ  r	  )r/   rB   r8   r9   ÚprobOfSuccessrI   Úys          r0   r:   zdlaplace_gen._rvs  sY   € õ  œ¥2¤:¨a¡=¤= .Ñ1Ô1Ð1ˆØ×"Ò" =°tÐ"Ñ<Ô<ˆØ×"Ò" =°tÐ"Ñ<Ô<ˆØ�1‰uˆr3   re   )r   r€   r�   r‚   r1   rQ   rU   rb   ru   r|   r:   rƒ   r3   r0   r  r  Ê  s�   € € € € € ðð ð,Eð Eð Eð.ð .ð .ð	6ð 	6ð 	6ð?ð ?ð ?ð,ð ,ð ,ð.ð .ð .ðð ð ð ð ð r3   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 r5   rƒ   r.   s    r0   r1   zpoisson_binom_gen._shape_infoG  s	   € ð ˆ	r3   c                 ót   — t          j        |d¬¦  «        }d|k    |dk    z  }t          j        |d¬¦  «        S ©Nr   rw   r   )r,   ÚstackÚall)r/   Úargsr(   Úcondss       r0   r?   zpoisson_binom_gen._argcheckL  s=   € ÝŒH�T Ð"Ñ"Ô"ˆØ�a’˜A šFÑ#ˆÝŒv�e !Ð$Ñ$Ô$Ð$r3   Nr�   c                ó*  — t          j        |d¬¦  «        }|€|j        n)t          j        |¦  «        r|dfnt	          |¦  «        dz   }t          j        |j        |¦  «        }t                               |||¬¦  «                             d¬¦  «        S )Nrå  rw   r   )r   r�   )	r,   r  ÚshapeÚisscalarÚtupleÚbroadcast_shapesr�   r:   rz   )r/   r8   r9   r!  r(   s        r0   r:   zpoisson_binom_gen._rvsQ  s‹   € åŒH�T Ð#Ñ#Ô#ˆð  ˜<�”�Ýœ[¨Ñ.Ô.ÐF��q�	�	µE¸$±K´KÀ$Ñ4Fð 	åÔ" 1¤7¨DÑ1Ô1ˆÝ�~Š~˜a d¸ˆ~ÑFÔF×JÒJÐPRÐJÑSÔSÐSr3   c                 ó$   — dt          |¦  «        fS r¨   )Úlen)r/   r!  s     r0   rC   zpoisson_binom_gen._get_support[  s   € Ø•#�d‘)”)ˆ|Ðr3   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/   rJ   r!  s      r0   rQ   zpoisson_binom_gen._pmf^  óe   € ÝŒM˜!ÑÔ×#Ò#¥B¤HÑ-Ô-ˆÝÔ& qÐ0¨4Ð0Ð0Ð0ˆˆˆDÝŒz˜$¥b¤jÐ1Ñ1Ô1ˆÝ˜a  uÑ-Ô-Ð-r3   c                 óî   — t          j        |¦  «                             t           j        ¦  «        }t          j        |g|¢R Ž ^}}t          j        |t           j        ¬¦  «        }t          ||d¦  «        S )NrÄ  rÓ   r+  r-  s      r0   rU   zpoisson_binom_gen._cdfd  r.  r3   c                 óž   — t          j        |d¬¦  «        }t          j        |d¬¦  «        }t          j        |d|z
  z  d¬¦  «        }||d d fS r  )r,   r  rz   )r/   r!  Úkwdsr(   ró   rm   s         r0   ru   zpoisson_binom_gen._statsj  sU   € ÝŒH�T Ð"Ñ"Ô"ˆÝŒv�a˜aÐ Ñ Ô ˆÝŒf�Q˜!˜A™#‘Y QÐ'Ñ'Ô'ˆØ�c˜4 Ð&Ð&r3   c                 ó"   — t          | g|¢R i |¤ŽS r5   )Úpoisson_binomial_frozen)r/   r!  r1  s      r0   Ú__call__zpoisson_binom_gen.__call__p  s    € Ý& tÐ;¨dÐ;Ð;Ð;°dÐ;Ð;Ð;r3   )r   r€   r�   r‚   r1   r?   r:   rC   rQ   rU   ru   r4  rƒ   r3   r0   r  r    s­   € € € € € ð'ð 'ðPð ð ð
%ð %ð %ð
  $°$ð Tð Tð Tð Tð Tðð ð ð.ð .ð .ð.ð .ð .ð'ð 'ð 'ð<ð <ð <ð <ð <r3   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(   Úlocr8   s       r0   Ú_parse_args_rvsr<  |  s'   € Ý•”˜Q  AÑ&Ô&Ñ'Ô'¨¨c°4Ð7Ð7r3   rc   c                 óP   — t          t          j        |dd¦  «        ¦  «        |d|fS r8  r9  )r/   r(   r;  rk   s       r0   Ú_parse_args_statsr>    s'   € Ý•”˜Q  AÑ&Ô&Ñ'Ô'¨¨c°7Ð:Ð:r3   c                 óN   — t          t          j        |dd¦  «        ¦  «        |dfS r8  r9  )r/   r(   r;  s      r0   Ú_parse_argsr@  ‚  s%   € Ý•”˜Q  AÑ&Ô&Ñ'Ô'¨¨cÐ1Ð1r3   c                   ó   — e Zd Zd„ Zdd„ZdS )r3  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!  r1  Ú	__class__Ú_updated_ctor_paramÚdistr<  Ú__get__Ú_pb_objÚ_pb_clsr>  r@  rC   rB   r’   )r/   rE  r!  r1  r6  Ú_s         r0   Ú__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‰ˆŒ�”��r3   NFc                 ó|   —  | j         j        | j        i | j        ¤Ž\  }}} | j         j        || j        ||||fi |¤ŽS r5   )rE  r@  r!  r1  Úexpect)	r/   ÚfuncÚlbÚubÚconditionalr1  rB   r;  Úscales	            r0   rL  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ÐRr3   )NNNF)r   r€   r�   rJ  rL  rƒ   r3   r0   r3  r3  Œ  s=   € € € € € ð9ð 9ð 9ðSð Sð Sð Sð Sð Sr3   r3  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    r0   r1   zskellam_gen._shape_infoÂ  s<   € Ý˜5 %¨!­R¬V¨°nÑEÔEÝ˜5 %¨!­R¬V¨°nÑEÔEðGð 	Gr3   Nc                 ó`   — |}|                      ||¦  «        |                      ||¦  «        z
  S r5   r‚  )r/   r  r  r8   r9   r&   s         r0   r:   zskellam_gen._rvsÆ  s7   € ØˆØ×$Ò$ S¨!Ñ,Ô,Ø×$Ò$ S¨!Ñ,Ô,ñ-ð 	.r3   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  rN   Ú	_ncx2_pdf©r/   rI   r  r  Úpxs        r0   rQ   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                 ó2  — t          |¦  «        }t          j        d¬¦  «        5  t          j        |dk     t	          j        d|z  d|z  d|z  ¦  «        dt	          j        d|z  d|dz   z  d|z  ¦  «        z
  ¦  «        }d d d ¦  «         n# 1 swxY w Y   |S )NrÏ   rÛ   r   rµ   éþÿÿÿr   )r   r,   rÒ   r  rN   Ú	_ncx2_cdfrX  s        r0   rU   zskellam_gen._cdfÓ  sé   € Ý�!‰HŒHˆÝŒ[˜hÐ'Ñ'Ô'ð 	Dð 	DÝ”˜!˜aš%Ýœ-¨¨#©¨r°!©t°Q°s±UÑ;Ô;Ø�cœm¨A¨c©E°1°a¸±c±7¸A¸c¹EÑBÔBÑBñDô DˆBð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð ˆ	s   ¥ABÂBÂBc                 óV   — ||z
  }||z   }|t          |dz  ¦  «        z  }d|z  }||||fS )Nr·   r   rù   )r/   r  r  ró   rm   rn   ro   s          r0   ru   zskellam_gen._statsÛ  s@   € Ø�S‰yˆØ�C‰iˆØ•D˜# ™‘N”NÑ"ˆØ�‰WˆØ�S˜"˜bÐ Ð r3   re   )	r   r€   r�   r‚   r1   r:   rQ   rU   ru   rƒ   r3   r0   rS  rS  ¤  sq   € € € € € ðð ð:Gð Gð Gð.ð .ð .ð .ð
ð ð ðð ð ð!ð !ð !ð !ð !r3   rS  Ú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    r0   r1   zyulesimon_gen._shape_info  s   € Ý˜7 E¨A­r¬v¨;¸ÑGÔGÐHÐHr3   Nc           	      ó¾   — |                      |¦  «        }|                      |¦  «        }t          | t          t          | |z  ¦  «         ¦  «        z  ¦  «        }|S r5   )Ústandard_exponentialr   r   r   )r/   rb  r8   r9   ÚE1ÚE2Úanss          r0   r:   zyulesimon_gen._rvs  sZ   € Ø×.Ò.¨tÑ4Ô4ˆØ×.Ò.¨tÑ4Ô4ˆÝ�B�3�¥ R C¨%¡KÑ 0Ô 0Ð0Ñ1Ô1Ñ1Ñ2Ô2ˆØˆ
r3   c                 ó8   — |t          j        ||dz   ¦  «        z  S rE   ©r   r¥   ©r/   rI   rb  s      r0   rQ   zyulesimon_gen._pmf  s   € Ø•w”| A u¨q¡yÑ1Ô1Ñ1Ð1r3   c                 ó   — |dk    S r¨   rƒ   )r/   rb  s     r0   r?   zyulesimon_gen._argcheck  s   € Ø˜’	Ðr3   c                 óR   — t          |¦  «        t          j        ||dz   ¦  «        z   S rE   ©r   r   r   rj  s      r0   rL   zyulesimon_gen._logpmf  s#   € Ý�5‰zŒz�GœN¨1¨e°a©iÑ8Ô8Ñ8Ð8r3   c                 ó>   — d|t          j        ||dz   ¦  «        z  z
  S rE   ri  rj  s      r0   rU   zyulesimon_gen._cdf  s"   € Ø�1•w”| A u¨q¡yÑ1Ô1Ñ1Ñ1Ð1r3   c                 ó8   — |t          j        ||dz   ¦  «        z  S rE   ri  rj  s      r0   rY   zyulesimon_gen._sf  s   € Ø•7”<  5¨1¡9Ñ-Ô-Ñ-Ð-r3   c                 óR   — t          |¦  «        t          j        ||dz   ¦  «        z   S rE   rm  rj  s      r0   r  zyulesimon_gen._logsf   s#   € Ý�1‰vŒv�œ q¨%°!©)Ñ4Ô4Ñ4Ð4r3   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µ   rg   r·   r  é   é1   é   )r,   r  r-   Únanr   )r/   rb  rl   r  rn   ro   s         r0   ru   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ˆÐr3   re   )r   r€   r�   r‚   r1   r:   rQ   r?   rL   rU   rY   r  ru   rƒ   r3   r0   r`  r`  æ  s®   € € € € € ð ð  ðBIð Ið Iðð ð ð ð2ð 2ð 2ðð ð ð9ð 9ð 9ð2ð 2ð 2ð.ð .ð .ð5ð 5ð 5ðð ð ð ð r3   r`  Ú	yulesimon)r…   rB   c                   ó@   — e Zd ZdZdZdZd„ Zd„ Zd„ Zd	d„Z	d„ Z
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    r0   r1   z_nchypergeom_gen._shape_infoB  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r3   c                 óz   — |||}}}||z
  }t          j        d||z
  ¦  «        }t          j        ||¦  «        }||fS r¨   r,  )	r/   r%  r&   r&  rz  rË  rÊ  Úx_minÚx_maxs	            r0   rC   z_nchypergeom_gen._get_supportH  sH   € Ø�a˜ˆqˆ2ˆØ�‰VˆÝ”
˜1˜a "™fÑ%Ô%ˆÝ”
˜1˜bÑ!Ô!ˆØ�eˆ|Ðr3   c                 óÆ  — t          j        |¦  «        t          j        |¦  «        }}t          j        |¦  «        t          j        |¦  «        }}|                     t          ¦  «        |k    |dk    z  }|                     t          ¦  «        |k    |dk    z  }|                     t          ¦  «        |k    |dk    z  }|dk    }||k    }	||k    }
||z  |z  |z  |	z  |
z  S r¨   )r,   rJ  r¹   r`  )r/   r%  r&   r&  rz  Úcond1Úcond2Úcond3Úcond4Úcond5Úcond6s              r0   r?   z_nchypergeom_gen._argcheckO  sÆ   € ÝŒz˜!‰}Œ}�bœj¨™mœmˆ1ˆÝ”*˜Q‘-”-¥¤¨DÑ!1Ô!1ˆ4ˆØ—’�#‘” !Ò#¨¨QªÑ/ˆØ—’�#‘” !Ò#¨¨QªÑ/ˆØ—’�#‘” !Ò#¨¨QªÑ/ˆØ�q’ˆØ�Q’ˆØ�Q’ˆØ�u‰}˜uÑ$ uÑ,¨uÑ4°uÑ<Ð<r3   c                 óJ   ‡ — t           ˆ fd„¦   «         } |||||||¬¦  «        S )Nc                 óÀ   •— t          j        |¦  «        }t          ¦   «         }t          |‰
j        ¦  «        } |||| |||¦  «        }	|	                     |¦  «        }	|	S r5   )r,   Úprodr    ÚgetattrÚrvs_nameÚreshape)r%  r&   r&  rz  r8   r9   ÚlengthÚurnÚrv_genrd  r/   s             €r0   re  z$_nchypergeom_gen._rvs.<locals>._rvs1\  s[   ø€ å”W˜T‘]”]ˆFÝ#Ñ%Ô%ˆCÝ˜S $¤-Ñ0Ô0ˆFØ�&˜˜A˜q $¨°Ñ=Ô=ˆCØ—+’+˜dÑ#Ô#ˆCØˆJr3   r�   rf  )r/   r%  r&   r&  rz  r8   r9   re  s   `       r0   r:   z_nchypergeom_gen._rvsZ  sF   ø€ å	#ð	ð 	ð 	ð 	ñ 
$Ô	#ð	ð ˆu�Q˜˜1˜d¨¸LÐIÑIÔIÐIr3   c                 óÊ   ‡ — t          j        |||||¦  «        \  }}}}}|j        dk    rt          j        |¦  «        S t           j        ˆ fd„¦   «         } ||||||¦  «        S )Nr   c                 ó`   •— ‰                      ||||d¦  «        }|                     | ¦  «        S ©Ngê-�™—q=)rE  Úprobability)rI   r%  r&   r&  rz  rŒ  r/   s         €r0   Ú_pmf1z$_nchypergeom_gen._pmf.<locals>._pmf1m  s.   ø€ à—)’)˜A˜q ! T¨5Ñ1Ô1ˆCØ—?’? 1Ñ%Ô%Ð%r3   )r,   rÑ   r8   Ú
empty_likerÐ  )r/   rI   r%  r&   r&  rz  r’  s   `      r0   rQ   z_nchypergeom_gen._pmfg  s€   ø€ åÔ.¨q°!°Q¸¸4Ñ@Ô@Ñˆˆ1ˆa��DØŒ6�QŠ;ˆ;Ý”= Ñ#Ô#Ð#å	Œð	&ð 	&ð 	&ð 	&ñ 
Œð	&ð ˆu�Q˜˜1˜a Ñ&Ô&Ð&r3   c                 ó~   ‡ — t           j        ˆ fd„¦   «         }d|v sd|v r |||||¦  «        nd\  }}d\  }	}
|||	|
fS )Nc                 ó^   •— ‰                      ||| |d¦  «        }|                     ¦   «         S r�  )rE  rk   )r%  r&   r&  rz  rŒ  r/   s        €r0   Ú	_moments1z*_nchypergeom_gen._stats.<locals>._moments1v  s*   ø€ à—)’)˜A˜q ! T¨5Ñ1Ô1ˆCØ—;’;‘=”=Ð r3   r@  Úvre   )r,   rÐ  )r/   r%  r&   r&  rz  rk   r–  r@  r—  rf   rJ   s   `          r0   ru   z_nchypergeom_gen._statst  ss   ø€ å	Œð	!ð 	!ð 	!ð 	!ñ 
Œð	!ð .1°G¨^¨^¸sÀg¸~¸~�	�	˜!˜Q  4Ñ(Ô(Ð(Ø!ñ 	ˆˆ1à‰ˆˆ1Ø�!�Q˜ˆzÐr3   re   )r   r€   r�   r‚   r‰  rE  r1   rC   r?   r:   rQ   ru   rƒ   r3   r0   rx  rx  8  s�   € € € € € ðð ð €HØ€DðHð Hð Hðð ð ð	=ð 	=ð 	=ðJð Jð Jð Jð'ð 'ð 'ð
ð 
ð 
ð 
ð 
r3   rx  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   rE  rƒ   r3   r0   r™  r™  �  s'   € € € € € ðGð GðR €HØ%€D€D€Dr3   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   rE  rƒ   r3   r0   r�  r�  Ô  s'   € € € € € ðGð GðR €HØ'€D€D€Dr3   r�  Únchypergeom_walleniusz&A Wallenius' noncentral hypergeometric)r   N)r   rc   )r   )jÚ	functoolsr   Úscipyr   Úscipy.specialr   r   r   r   rF   r	   Úscipy._lib._utilr
   r   Ú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!   Úscipy.special._ufuncsÚ_ufuncsrN   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-   r  r  r5  r<  r>  r@  rG  rH  rF  r3  rS  r^  r`  rv  rx  r™  r›  r�  rŸ  ÚlistÚglobalsÚcopyÚitemsÚpairsÚ_distn_namesÚ_distn_gen_namesÚ__all__rƒ   r3   r0   ú<module>r³     s	  ðð
 Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø &Ð &Ð &Ð &Ð &Ð &à 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˜{Ð+Ñ+Ô+€	ð\ð \ð \ð \ð \�[ñ \ô \ð \ð~ ˆ^ Ð.Ñ.Ô.€
ð5ð 5ð 5ð 5ð 5�ñ 5ô 5ð 5ðp 
ˆ�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€ð%ð %ð %ð
ð 
ð 
ðBð Bð BðV ð V ð V ð V ð V �+ñ V ô V ð V ðr ˆ+˜ 	°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€	ðFð Fð Fð Fð F�{ñ Fô Fð FðR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Ñ €Ðà
Ð)Ñ
)€€€r3   