o
    `^h3                     @   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__ \/home/air/shanriGPT/back/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   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   )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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-   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
   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  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