o
    Ö­j·3  ã                   @   sÐ   d dl Z d dlZ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gZG dd„ deƒZdd	„ ZG d
d„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZe je jZeD ]Zeee ƒee _qZdS )é    N)Úinf)Úspecial)ÚContinuousDistributionÚ_RealDomainÚ_RealParameterÚ_ParameterizationÚ_combine_docsÚNormalÚUniformc                       s\  e Zd ZdZee efd�Zedefd�Zee efd�Ze	ddedd�Z
e	dd	ed
d�Ze	dedd�Zee
eƒgZeZde dej ¡ Ze dej ¡d Zd9‡ fdd„	Zdddœ‡ fdd„
Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Z d)d*„ Z!d+d,„ Z"d-d.„ Z#d/d0„ Z$d1d2„ Z%d3d4„ Z&ddge&_'d5d6„ Z(d7d8„ Z)‡  Z*S ):r	   a  Normal distribution with prescribed mean and standard deviation.

    The probability density function of the normal distribution is:

    .. math::

        f(x) = \frac{1}{\sigma \sqrt{2 \pi}} \exp {
            \left( -\frac{1}{2}\left( \frac{x - \mu}{\sigma} \right)^2 \right)}

    ©Ú	endpointsr   Úmuz\mu)éÿÿÿÿé   ©ÚsymbolÚdomainÚtypicalÚsigmaz\sigma)ç      à?g      ø?Úx©r   r   r   é   Nc                    s(   |d u r|d u rt ƒ  t¡S t ƒ  | ¡S ©N)ÚsuperÚ__new__ÚStandardNormal)Úclsr   r   Úkwargs©Ú	__class__© ú[/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/stats/_new_distributions.pyr   ,   s   zNormal.__new__ç        ç      ð?©r   r   c                   ó   t ƒ jd||dœ|¤Ž d S )Nr%   r!   ©r   Ú__init__©Úselfr   r   r   r   r!   r"   r(   1   ó   zNormal.__init__c                K   s   t  | || | ¡t |¡ S r   )r   Ú_logpdf_formulaÚnpÚlog©r*   r   r   r   r   r!   r!   r"   r,   4   ó   zNormal._logpdf_formulac                K   s   t  | || | ¡| S r   )r   Ú_pdf_formular/   r!   r!   r"   r1   7   ó   zNormal._pdf_formulac                K   ó   t  | || | ¡S r   )r   Ú_logcdf_formular/   r!   r!   r"   r4   :   ó   zNormal._logcdf_formulac                K   r3   r   )r   Ú_cdf_formular/   r!   r!   r"   r6   =   r5   zNormal._cdf_formulac                K   r3   r   )r   Ú_logccdf_formular/   r!   r!   r"   r7   @   r5   zNormal._logccdf_formulac                K   r3   r   )r   Ú_ccdf_formular/   r!   r!   r"   r8   C   r5   zNormal._ccdf_formulac                K   ó   t  | |¡| | S r   )r   Ú_icdf_formular/   r!   r!   r"   r:   F   r5   zNormal._icdf_formulac                K   r9   r   )r   Ú_ilogcdf_formular/   r!   r!   r"   r;   I   r5   zNormal._ilogcdf_formulac                K   r9   r   )r   Ú_iccdf_formular/   r!   r!   r"   r<   L   r5   zNormal._iccdf_formulac                K   r9   r   )r   Ú_ilogccdf_formular/   r!   r!   r"   r=   O   r5   zNormal._ilogccdf_formulac                K   s   t  | ¡t t|ƒ¡ S r   )r   Ú_entropy_formular-   r.   Úabsr)   r!   r!   r"   r>   R   r2   zNormal._entropy_formulac                K   sd   t  | ¡}tjdd�� t t t|ƒ¡d ¡}W d   ƒ n1 s"w   Y  tjt ||¡dd�S )NÚignore©Údividey                r   ©Úaxis)	r   Ú_logentropy_formular-   Úerrstater.   r?   r   Ú	logsumexpÚbroadcast_arrays)r*   r   r   r   ÚlH0Úllsr!   r!   r"   rE   U   s
   
ýzNormal._logentropy_formulac                K   ó   |S r   r!   r)   r!   r!   r"   Ú_median_formula]   ó   zNormal._median_formulac                K   rK   r   r!   r)   r!   r!   r"   Ú_mode_formula`   rM   zNormal._mode_formulac                K   s"   |dkr	t  |¡S |dkr|S d S )Nr   r   )r-   Ú	ones_like©r*   Úorderr   r   r   r!   r!   r"   Ú_moment_raw_formulac   s
   
zNormal._moment_raw_formulac                K   sB   |dkr	t  |¡S |d rt  |¡S || tjt|ƒd dd� S )Nr   r   r   T)Úexact)r-   rO   Ú
zeros_liker   Ú
factorial2ÚintrP   r!   r!   r"   Ú_moment_central_formulal   s
   

zNormal._moment_central_formulac                K   s   |j |||d�d S )N)ÚlocÚscaleÚsizer!   ©Únormal)r*   Úsample_shapeÚ
full_shapeÚrngr   r   r   r!   r!   r"   Ú_sample_formulau   r5   zNormal._sample_formula)NN)+Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú
_mu_domainÚ_sigma_domainÚ
_x_supportr   Ú	_mu_paramÚ_sigma_paramÚ_x_paramr   Ú_parameterizationsÚ	_variabler-   ÚsqrtÚpiÚ_normalizationr.   Ú_log_normalizationr   r(   r,   r1   r4   r6   r7   r8   r:   r;   r<   r=   r>   rE   rL   rN   rR   ÚordersrW   r`   Ú__classcell__r!   r!   r   r"   r	      sH    ÿÿ
	c                 C   s   t j| |tjd  gdd�S )Ny              ð?r   rC   )r   rG   r-   rn   )Úlog_pÚlog_qr!   r!   r"   Ú	_log_diffy   r+   ru   c                   @   s
  e Zd ZdZee efd�Zededd�ZeZ	g Z
de dej ¡ Ze dej ¡d Ze d¡Ze d	¡Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Z d$d%„ Z!d&d'„ Z"d(d)„ Z#d*d+„ Z$d,d-„ Z%d.d/„ Z&d0S )1r   zÌStandard normal distribution.

    The probability density function of the standard normal distribution is:

    .. math::

        f(x) = \frac{1}{\sqrt{2 \pi}} \exp \left( -\frac{1}{2} x^2 \right)

    r   r   )éûÿÿÿé   r   r   r   r#   r$   c                 K   s   t j| fi |¤Ž d S r   )r   r(   ©r*   r   r!   r!   r"   r(   �   s   zStandardNormal.__init__c                 K   s   | j |d d   S ©Nr   )rp   ©r*   r   r   r!   r!   r"   r,   “   r5   zStandardNormal._logpdf_formulac                 K   s   | j t |d  d ¡ S ry   )ro   r-   Úexprz   r!   r!   r"   r1   –   ó   zStandardNormal._pdf_formulac                 K   ó
   t  |¡S r   ©r   Úlog_ndtrrz   r!   r!   r"   r4   ™   ó   
zStandardNormal._logcdf_formulac                 K   r}   r   ©r   Úndtrrz   r!   r!   r"   r6   œ   r€   zStandardNormal._cdf_formulac                 K   ó   t  | ¡S r   r~   rz   r!   r!   r"   r7   Ÿ   ó   zStandardNormal._logccdf_formulac                 K   rƒ   r   r�   rz   r!   r!   r"   r8   ¢   r„   zStandardNormal._ccdf_formulac                 K   r}   r   ©r   Úndtrirz   r!   r!   r"   r:   ¥   r€   zStandardNormal._icdf_formulac                 K   r}   r   ©r   Ú	ndtri_exprz   r!   r!   r"   r;   ¨   r€   zStandardNormal._ilogcdf_formulac                 K   ó   t  |¡ S r   r…   rz   r!   r!   r"   r<   «   r„   zStandardNormal._iccdf_formulac                 K   r‰   r   r‡   rz   r!   r!   r"   r=   ®   r„   z StandardNormal._ilogccdf_formulac                 K   s   dt  dt j ¡ d S )Nr   r   )r-   r.   rn   rx   r!   r!   r"   r>   ±   r2   zStandardNormal._entropy_formulac                 K   s    t  t  dt j ¡¡t  d¡ S ry   )r-   Úlog1pr.   rn   rx   r!   r!   r"   rE   ´   ó    z"StandardNormal._logentropy_formulac                 K   ó   dS ©Nr   r!   rx   r!   r!   r"   rL   ·   rM   zStandardNormal._median_formulac                 K   rŒ   r�   r!   rx   r!   r!   r"   rN   º   rM   zStandardNormal._mode_formulac                 K   s   dddddddœ}|  |d ¡S )Nr   r   é   )r   r   r   rŽ   é   rw   )Úget)r*   rQ   r   Úraw_momentsr!   r!   r"   rR   ½   s   z"StandardNormal._moment_raw_formulac                 K   ó   | j |fi |¤ŽS r   ©rR   ©r*   rQ   r   r!   r!   r"   rW   Á   ó   z&StandardNormal._moment_central_formulac                 K   r’   r   r“   r”   r!   r!   r"   Ú_moment_standardized_formulaÄ   r•   z+StandardNormal._moment_standardized_formulac                 K   s   |j |d�d S )N©rZ   r!   r[   )r*   r]   r^   r_   r   r!   r!   r"   r`   Ç   ó   zStandardNormal._sample_formulaN)'ra   rb   rc   rd   r   r   rg   r   rj   rl   rk   r-   rm   rn   ro   r.   rp   Úfloat64r   r   r(   r,   r1   r4   r6   r7   r8   r:   r;   r<   r=   r>   rE   rL   rN   rR   rW   r–   r`   r!   r!   r!   r"   r   }   s:    	

r   c                       s  e Zd ZdZedefd�Zedefd�Zee efd�Zedefd�Z	eddd�Z
eded	d
�Zededd
�Zeddedd�Zedde	dd�Zede
dd
�Ze e¡ e	 e¡ e
 ee¡ eeeƒeeeƒgZeZdddddœ‡ fdd„
Zddd„Zdd„ Zdd„ Z‡  ZS )Ú_LogUniformaª  Log-uniform distribution.

    The probability density function of the log-uniform distribution is:

    .. math::

        f(x; a, b) = \frac{1}
                          {x (\log(b) - \log(a))}

    If :math:`\log(X)` is a random variable that follows a uniform distribution
    between :math:`\log(a)` and :math:`\log(b)`, then :math:`X` is log-uniformly
    distributed with shape parameters :math:`a` and :math:`b`.

    r   r   ÚaÚlog_a©r›   Úb©TT©r   Ú	inclusive©gü©ñÒMbP?gÍÌÌÌÌÌì?r   rž   ©gš™™™™™ñ?g     @�@z\log(a))éýÿÿÿgš™™™™™¹¿r   Úlog_bz\log(b))çš™™™™™¹?rŽ   r   N©r›   rž   rœ   r¥   c                   s    t ƒ jd||||dœ|¤Ž d S )Nr§   r!   r'   ©r*   r›   rž   rœ   r¥   r   r   r!   r"   r(   ò   r‹   z_LogUniform.__init__c                 K   sr   |d u r	t  |¡n|}|d u rt  |¡n|}|d u rt  |¡n|}|d u r*t  |¡n|}| t||||d�¡ |S )Nr§   )r-   r{   r.   ÚupdateÚdictr¨   r!   r!   r"   Ú_process_parametersõ   s   z_LogUniform._process_parametersc                K   s   || | d S )Nr   r!   )r*   r   rœ   r¥   r   r!   r!   r"   r1      r˜   z_LogUniform._pdf_formulac                 K   sF   |dkr| j S | j ||  | }t t t|| || ƒ¡¡}|| S r�   )Ú_oner-   Úrealr{   ru   )r*   rQ   rœ   r¥   r   Út1Út2r!   r!   r"   rR     s
   z_LogUniform._moment_raw_formula)NNNN)ra   rb   rc   rd   r   r   Ú	_a_domainÚ	_b_domainÚ_log_a_domainÚ_log_b_domainrg   r   Ú_a_paramÚ_b_paramÚ_log_a_paramÚ_log_b_paramrj   Údefine_parametersr   rk   rl   r(   r«   r1   rR   rr   r!   r!   r   r"   rš   Ì   s6    ÿÿ

ÿ
rš   c                       s$  e Zd ZdZee efd�Zedefd�Zeddd�Ze	dedd�Z
e	d	ed
d�Ze	dedd�Ze e
¡ e e
e¡ ee
eƒgZeZdddœ‡ fdd„
Zd.dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+ge_ d,d-„ Z!‡  Z"S )/r
   z±Uniform distribution.

    The probability density function of the uniform distribution is:

    .. math::

        f(x; a, b) = \frac{1}
                          {b - a}

    r   r›   r�   rŸ   r    r¢   r   rž   r£   r   Nc                   r&   )Nr�   r!   r'   )r*   r›   rž   r   r   r!   r"   r(   (  r+   zUniform.__init__c                 K   s    || }|  t|||d�¡ |S )N)r›   rž   Úab)r©   rª   ©r*   r›   rž   r¹   r   r!   r!   r"   r«   +  s   zUniform._process_parametersc                K   s   t  t  |¡t jt  |¡ ¡S r   )r-   ÚwhereÚisnanÚnanr.   ©r*   r   r¹   r   r!   r!   r"   r,   0  r0   zUniform._logpdf_formulac                K   s   t  t  |¡t jd| ¡S ©Nr   )r-   r»   r¼   r½   r¾   r!   r!   r"   r1   3  r|   zUniform._pdf_formulac                K   sH   t jdd�� t  || ¡t  |¡ W  d   ƒ S 1 sw   Y  d S ©Nr@   rA   ©r-   rF   r.   ©r*   r   r›   r¹   r   r!   r!   r"   r4   6  ó   $ÿzUniform._logcdf_formulac                K   s   || | S r   r!   rÂ   r!   r!   r"   r6   :  r„   zUniform._cdf_formulac                K   sH   t jdd�� t  || ¡t  |¡ W  d   ƒ S 1 sw   Y  d S rÀ   rÁ   ©r*   r   rž   r¹   r   r!   r!   r"   r7   =  rÃ   zUniform._logccdf_formulac                K   s   || | S r   r!   rÄ   r!   r!   r"   r8   A  r„   zUniform._ccdf_formulac                K   s   |||  S r   r!   )r*   Úpr›   r¹   r   r!   r!   r"   r:   D  r„   zUniform._icdf_formulac                K   s   |||  S r   r!   )r*   rÅ   rž   r¹   r   r!   r!   r"   r<   G  r„   zUniform._iccdf_formulac                K   r}   r   )r-   r.   )r*   r¹   r   r!   r!   r"   r>   J  r€   zUniform._entropy_formulac                K   ó   |d|  S ©Nr   r!   rº   r!   r!   r"   rN   M  r„   zUniform._mode_formulac                K   rÆ   rÇ   r!   rº   r!   r!   r"   rL   P  r„   zUniform._median_formulac                 K   s    |d }|| ||  ||  S r¿   r!   )r*   rQ   r›   rž   r¹   r   Únp1r!   r!   r"   rR   S  s   zUniform._moment_raw_formulac                 K   s   |dkr
|d d S d S )Nr   é   r!   )r*   rQ   r¹   r   r!   r!   r"   rW   W  r2   zUniform._moment_central_formular   c                 K   sB   z|j |||d�d W S  ty    |j dd|d�| |  Y S w )Nr—   r!   r   r   )ÚuniformÚOverflowError)r*   r]   r^   r_   r›   rž   r¹   r   r!   r!   r"   r`   \  s
   ÿzUniform._sample_formula)NNN)#ra   rb   rc   rd   r   r   r°   r±   rg   r   r´   rµ   rj   r¸   r   rk   rl   r(   r«   r,   r1   r4   r6   r7   r8   r:   r<   r>   rN   rL   rR   rW   rq   r`   rr   r!   r!   r   r"   r
     s:    

c                   @   s\   e Zd Zedefd�Zedefdd�Zededd�Zededd�Z	e
eƒgZe	Zd	d
„ ZdS )Ú_Gammar   r   )FFr    r›   )r¦   é
   r   r   c                K   s"   ||d  t  | ¡ t |¡ S r¿   )r-   r{   r   Úgamma)r*   r   r›   r   r!   r!   r"   r1   n  s   "z_Gamma._pdf_formulaN)ra   rb   rc   r   r   r°   rg   r   r´   rj   r   rk   rl   r1   r!   r!   r!   r"   rÌ   c  s    
rÌ   )ÚsysÚnumpyr-   r   Úscipyr   Ú(scipy.stats._distribution_infrastructurer   r   r   r   r   Ú__all__r	   ru   r   rš   r
   rÌ   Úmodulesra   Ú__dict__Ú_moduleÚ	dist_namerd   r!   r!   r!   r"   Ú<module>   s     kOBUÿ