o
    i3                     @   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__ X/home/kim/smarthome/.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   Zaxis)	r   _logentropy_formular-   errstater.   r?   r   	logsumexpZbroadcast_arrays)r*   r   r   r   ZlH0Zllsr!   r!   r"   rD   U   s
   
zNormal._logentropy_formulac                K      |S r   r!   r)   r!   r!   r"   _median_formula]      zNormal._median_formulac                K   rG   r   r!   r)   r!   r!   r"   _mode_formula`   rI   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-   rK   Z
zeros_liker   Z
factorial2intrL   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   Z
_mu_domainZ_sigma_domain
_x_supportr   Z	_mu_paramZ_sigma_param_x_paramr   _parameterizations	_variabler-   sqrtpi_normalizationr.   _log_normalizationr   r(   r,   r1   r4   r6   r7   r8   r:   r;   r<   r=   r>   rD   rH   rJ   rN   ordersrQ   rZ   __classcell__r!   r!   r   r"   r	      sH    
	c                 C   s   t j| |tjd  gddS )Ny              ?r   rC   )r   rF   r-   rd   )Zlog_pZlog_qr!   r!   r"   	_log_diffy   r+   ri   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   zStandard 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   )rf   r*   r   r   r!   r!   r"   r,      r5   zStandardNormal._logpdf_formulac                 K   s   | j t|d  d  S rm   )re   r-   exprn   r!   r!   r"   r1         zStandardNormal._pdf_formulac                 K   
   t |S r   r   Zlog_ndtrrn   r!   r!   r"   r4         
zStandardNormal._logcdf_formulac                 K   rq   r   r   Zndtrrn   r!   r!   r"   r6      rs   zStandardNormal._cdf_formulac                 K      t | S r   rr   rn   r!   r!   r"   r7         zStandardNormal._logccdf_formulac                 K   ru   r   rt   rn   r!   r!   r"   r8      rv   zStandardNormal._ccdf_formulac                 K   rq   r   r   Zndtrirn   r!   r!   r"   r:      rs   zStandardNormal._icdf_formulac                 K   rq   r   r   Z	ndtri_exprn   r!   r!   r"   r;      rs   zStandardNormal._ilogcdf_formulac                 K      t | S r   rw   rn   r!   r!   r"   r<      rv   zStandardNormal._iccdf_formulac                 K   ry   r   rx   rn   r!   r!   r"   r=      rv   z StandardNormal._ilogccdf_formulac                 K   s   dt dt j  d S )Nr   r   )r-   r.   rd   rl   r!   r!   r"   r>      r2   zStandardNormal._entropy_formulac                 K   s    t t dt j t d S rm   )r-   log1pr.   rd   rl   r!   r!   r"   rD          z"StandardNormal._logentropy_formulac                 K      dS Nr   r!   rl   r!   r!   r"   rH      rI   zStandardNormal._median_formulac                 K   r|   r}   r!   rl   r!   r!   r"   rJ      rI   zStandardNormal._mode_formulac                 K   s   ddddddd}| |d S )Nr   r      )r   r   r   r~      rk   )get)r*   rM   r   Zraw_momentsr!   r!   r"   rN      s   z"StandardNormal._moment_raw_formulac                 K      | j |fi |S r   rN   r*   rM   r   r!   r!   r"   rQ         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rT   r!   rU   )r*   rW   rX   rY   r   r!   r!   r"   rZ         zStandardNormal._sample_formulaN)'r[   r\   r]   r^   r   r   r_   r   r`   rb   ra   r-   rc   rd   re   r.   rf   Zfloat64r   r   r(   r,   r1   r4   r6   r7   r8   r:   r;   r<   r=   r>   rD   rH   rJ   rN   rQ   r   rZ   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   Z	inclusivegMbP?g?r   r   g?g     @@z\log(a))gr   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-   ro   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}   )Z_oner-   realro   ri   )r*   rM   r   r   r   t1t2r!   r!   r"   rN     s
   z_LogUniform._moment_raw_formula)NNNN)r[   r\   r]   r^   r   r   	_a_domain	_b_domainZ_log_a_domainZ_log_b_domainr_   r   _a_param_b_paramZ_log_a_paramZ_log_b_paramr`   define_parametersr   ra   rb   r(   r   r1   rN   rh   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
   zUniform 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  rp   zUniform._pdf_formulac                K   sH   t jdd t || t | W  d    S 1 sw   Y  d S Nr@   rA   r-   rE   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   :  rv   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  rv   zUniform._ccdf_formulac                K   s   |||  S r   r!   )r*   pr   r   r   r!   r!   r"   r:   D  rv   zUniform._icdf_formulac                K   s   |||  S r   r!   )r*   r   r   r   r   r!   r!   r"   r<   G  rv   zUniform._iccdf_formulac                K   rq   r   )r-   r.   )r*   r   r   r!   r!   r"   r>   J  rs   zUniform._entropy_formulac                K      |d|  S Nr   r!   r   r!   r!   r"   rJ   M  rv   zUniform._mode_formulac                K   r   r   r!   r   r!   r!   r"   rH   P  rv   zUniform._median_formulac                 K   s    |d }|| ||  ||  S r   r!   )r*   rM   r   r   r   r   Znp1r!   r!   r"   rN   S  s   zUniform._moment_raw_formulac                 K   s   |dkr
|d d S d S )Nr      r!   )r*   rM   r   r   r!   r!   r"   rQ   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*   rW   rX   rY   r   r   r   r   r!   r!   r"   rZ   \  s
   zUniform._sample_formula)NNN)#r[   r\   r]   r^   r   r   r   r   r_   r   r   r   r`   r   r   ra   rb   r(   r   r,   r1   r4   r6   r7   r8   r:   r<   r>   rJ   rH   rN   rQ   rg   rZ   rh   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-   ro   r   gamma)r*   r   r   r   r!   r!   r"   r1   n  s   "z_Gamma._pdf_formulaN)r[   r\   r]   r   r   r   r_   r   r   r`   r   ra   rb   r1   r!   r!   r!   r"   r   c  s    
r   )sysnumpyr-   r   Zscipyr   Z(scipy.stats._distribution_infrastructurer   r   r   r   r   __all__r	   ri   r   r   r
   r   modulesr[   __dict___module	dist_namer^   r!   r!   r!   r"   <module>   s     kOBU