ó
    Eñi°  ã                   ó\   • S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S/r
 " S S\5      rg)	é    )ÚTensor)Úconstraints)ÚNormal)ÚTransformedDistribution)ÚExpTransformÚ	LogNormalc            	       ó@  ^ • \ rS rSr% Sr\R                  \R                  S.r\R                  r	Sr
\\S'    SS\\-  S\\-  S	\S-  S
S4U 4S jjjrSU 4S jjr\S
\4S j5       r\S
\4S j5       r\S
\4S j5       r\S
\4S j5       r\S
\4S j5       rS rSrU =r$ )r   é   a  
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ÚscaleTÚ	base_distNr   r   Úvalidate_argsÚreturnc                 óH   >• [        XUS9n[        TU ]	  U[        5       US9  g )N)r   )r   ÚsuperÚ__init__r   )Úselfr   r   r   r   Ú	__class__s        €Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/distributions/log_normal.pyr   ÚLogNormal.__init__(   s'   ø€ ô ˜3°]ÑCˆ	Ü‰Ñ˜¤L£NÀ-ÐÒPó    c                 óJ   >• U R                  [        U5      n[        TU ]  XS9$ )N)Ú	_instance)Ú_get_checked_instancer   r   Úexpand)r   Úbatch_shaper   Únewr   s       €r   r   ÚLogNormal.expand1   s&   ø€ Ø×(Ñ(¬°IÓ>ˆÜ‰w‰~˜kˆ~Ð9Ð9r   c                 ó.   • U R                   R                  $ ©N)r   r   ©r   s    r   r   ÚLogNormal.loc5   s   € à�~‰~×!Ñ!Ð!r   c                 ó.   • U R                   R                  $ r    )r   r   r!   s    r   r   ÚLogNormal.scale9   s   € à�~‰~×#Ñ#Ð#r   c                 ót   • U R                   U R                  R                  S5      S-  -   R                  5       $ ©Né   )r   r   ÚpowÚexpr!   s    r   ÚmeanÚLogNormal.mean=   s,   € à—‘˜4Ÿ:™:Ÿ>™>¨!Ó,¨qÑ0Ñ0×5Ñ5Ó7Ð7r   c                 ól   • U R                   U R                  R                  5       -
  R                  5       $ r    )r   r   Úsquarer)   r!   s    r   ÚmodeÚLogNormal.modeA   s'   € à—‘˜4Ÿ:™:×,Ñ,Ó.Ñ.×3Ñ3Ó5Ð5r   c                 óš   • U R                   R                  S5      nUR                  5       SU R                  -  U-   R	                  5       -  $ r&   )r   r(   Úexpm1r   r)   )r   Úscale_sqs     r   ÚvarianceÚLogNormal.varianceE   s<   € à—:‘:—>‘> !Ó$ˆØ�~‰~Ó 1 t§x¡x¡<°(Ñ#:×"?Ñ"?Ó"AÑAÐAr   c                 óP   • U R                   R                  5       U R                  -   $ r    )r   Úentropyr   r!   s    r   r6   ÚLogNormal.entropyJ   s   € Ø�~‰~×%Ñ%Ó'¨$¯(©(Ñ2Ð2r   © r    )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   ÚrealÚpositiveÚarg_constraintsÚsupportÚhas_rsampler   Ú__annotations__r   ÚfloatÚboolr   r   Úpropertyr   r   r*   r.   r3   r6   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      s  ø‡ ñð& *×.Ñ.¸×9MÑ9MÑN€Oà×"Ñ"€GØ€KàÓð &*ñ	Qà�e‰^ðQð ˜‰~ðQð ˜d‘{ð	Qð
 
÷Qð Q÷:ð ð"�Vó "ó ð"ð ð$�vó $ó ð$ð ð8�fó 8ó ð8ð ð6�fó 6ó ð6ð ðB˜&ó Bó ðB÷3ð 3r   N)Útorchr   Útorch.distributionsr   Útorch.distributions.normalr   Ú,torch.distributions.transformed_distributionr   Útorch.distributions.transformsr   Ú__all__r   r8   r   r   Ú<module>rO      s,   ðõ Ý +Ý -Ý PÝ 7ð ˆ-€ô>3Ð'õ >3r   