§
    Ÿ²Åjå  ã                   óX   — d dl mZ d dlmZ d dlmZ d dlmZ dgZ G d„ de¦  «        Z	dS )é    )Úconstraints)ÚNormal)ÚTransformedDistribution)ÚExpTransformÚ	LogNormalc                   óÔ   ‡ — e Zd ZdZej        ej        dœZej        ZdZ	dˆ fd„	Z
dˆ fd„	Zed„ ¦   «         Zed„ ¦   «         Zed	„ ¦   «         Zed
„ ¦   «         Zed„ ¦   «         Zd„ Zˆ xZS )r   a8  
    Creates a log-normal distribution parameterized by
    :attr:`loc` and :attr:`scale` where::

        X ~ Normal(loc, scale)
        Y = exp(X) ~ LogNormal(loc, scale)

    Example::

        >>> # xdoctest: +IGNORE_WANT("non-deterministic")
        >>> m = LogNormal(torch.tensor([0.0]), torch.tensor([1.0]))
        >>> m.sample()  # log-normal distributed with mean=0 and stddev=1
        tensor([ 0.1046])

    Args:
        loc (float or Tensor): mean of log of distribution
        scale (float or Tensor): standard deviation of log of the distribution
    )ÚlocÚscaleTNc                 óŒ   •— t          |||¬¦  «        }t          ¦   «                              |t          ¦   «         |¬¦  «         d S )N)Úvalidate_args)r   ÚsuperÚ__init__r   )Úselfr	   r
   r   Ú	base_distÚ	__class__s        €úOC:\Projects\Historical\venv\Lib\site-packages\torch/distributions/log_normal.pyr   zLogNormal.__init__"   s@   ø€ Ý˜3 °]ÐCÑCÔCˆ	Ý‰Œ×Ò˜¥L¡N¤NÀ-ÐÑPÔPÐPÐPÐPó    c                 ó€   •— |                       t          |¦  «        }t          ¦   «                              ||¬¦  «        S )N)Ú	_instance)Ú_get_checked_instancer   r   Úexpand)r   Úbatch_shaper   Únewr   s       €r   r   zLogNormal.expand&   s2   ø€ Ø×(Ò(­°IÑ>Ô>ˆÝ‰wŒw�~Š~˜k°Sˆ~Ñ9Ô9Ð9r   c                 ó   — | j         j        S ©N)r   r	   ©r   s    r   r	   zLogNormal.loc*   s   € àŒ~Ô!Ð!r   c                 ó   — | j         j        S r   )r   r
   r   s    r   r
   zLogNormal.scale.   s   € àŒ~Ô#Ð#r   c                 óp   — | j         | j                             d¦  «        dz  z                        ¦   «         S ©Né   )r	   r
   ÚpowÚexpr   s    r   ÚmeanzLogNormal.mean2   s.   € à”˜4œ:Ÿ>š>¨!Ñ,Ô,¨qÑ0Ñ0×5Ò5Ñ7Ô7Ð7r   c                 óh   — | j         | j                             ¦   «         z
                       ¦   «         S r   )r	   r
   Úsquarer"   r   s    r   ÚmodezLogNormal.mode6   s)   € à”˜4œ:×,Ò,Ñ.Ô.Ñ.×3Ò3Ñ5Ô5Ð5r   c                 óž   — | j                              d¦  «        }|                     ¦   «         d| j        z  |z                        ¦   «         z  S r   )r
   r!   Úexpm1r	   r"   )r   Úscale_sqs     r   ÚvariancezLogNormal.variance:   sA   € à”:—>’> !Ñ$Ô$ˆØ�~Š~ÑÔ 1 t¤x¡<°(Ñ#:×"?Ò"?Ñ"AÔ"AÑAÐAr   c                 óD   — | j                              ¦   «         | j        z   S r   )r   Úentropyr	   r   s    r   r,   zLogNormal.entropy?   s   € ØŒ~×%Ò%Ñ'Ô'¨$¬(Ñ2Ð2r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚrealÚpositiveÚarg_constraintsÚsupportÚhas_rsampler   r   Úpropertyr	   r
   r#   r&   r*   r,   Ú__classcell__)r   s   @r   r   r      s&  ø€ € € € € ðð ð$ *Ô.¸Ô9MÐNÐN€OØÔ"€GØ€KðQð Qð Qð Qð Qð Qð:ð :ð :ð :ð :ð :ð ð"ð "ñ „Xð"ð ð$ð $ñ „Xð$ð ð8ð 8ñ „Xð8ð ð6ð 6ñ „Xð6ð ðBð Bñ „XðBð3ð 3ð 3ð 3ð 3ð 3ð 3r   N)
Útorch.distributionsr   Útorch.distributions.normalr   Ú,torch.distributions.transformed_distributionr   Útorch.distributions.transformsr   Ú__all__r   © r   r   ú<module>r>      s‹   ðà +Ð +Ð +Ð +Ð +Ð +Ø -Ð -Ð -Ð -Ð -Ð -Ø PÐ PÐ PÐ PÐ PÐ PØ 7Ð 7Ð 7Ð 7Ð 7Ð 7ð ˆ-€ð53ð 53ð 53ð 53ð 53Ð'ñ 53ô 53ð 53ð 53ð 53r   