§
    ×§g›  ã                   óh   — d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 dgZ G d„ de¦  «        ZdS )	é    )Úconstraints)ÚExponential)ÚTransformedDistribution)ÚAffineTransformÚExpTransform)Úbroadcast_allÚParetoc                   óÌ   ‡ — e Zd ZdZej        ej        dœZdˆ fd„	Zdˆ fd„	Ze	d„ ¦   «         Z
e	d„ ¦   «         Ze	d„ ¦   «         Z ej        d	d
¬¦  «        d„ ¦   «         Zd„ Zˆ xZS )r	   aÃ  
    Samples from a Pareto Type 1 distribution.

    Example::

        >>> # xdoctest: +IGNORE_WANT("non-deterministic")
        >>> m = Pareto(torch.tensor([1.0]), torch.tensor([1.0]))
        >>> m.sample()  # sample from a Pareto distribution with scale=1 and alpha=1
        tensor([ 1.5623])

    Args:
        scale (float or Tensor): Scale parameter of the distribution
        alpha (float or Tensor): Shape parameter of the distribution
    )ÚalphaÚscaleNc                 óþ   •— t          ||¦  «        \  | _        | _        t          | j        |¬¦  «        }t	          ¦   «         t          d| j        ¬¦  «        g}t          ¦   «                              |||¬¦  «         d S )N)Úvalidate_argsr   )Úlocr   )r   r   r   r   r   r   ÚsuperÚ__init__)Úselfr   r   r   Ú	base_distÚ
transformsÚ	__class__s         €úV/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/distributions/pareto.pyr   zPareto.__init__   sq   ø€ Ý!.¨u°eÑ!<Ô!<ÑˆŒ
D”JÝ ¤
¸-ÐHÑHÔHˆ	Ý"‘n”n¥o¸!À4Ä:Ð&NÑ&NÔ&NÐOˆ
Ý‰Œ×Ò˜ J¸mÐÑLÔLÐLÐLÐLó    c                 óü   •— |                       t          |¦  «        }| j                             |¦  «        |_        | j                             |¦  «        |_        t          ¦   «                              ||¬¦  «        S )N)Ú	_instance)Ú_get_checked_instancer	   r   Úexpandr   r   )r   Úbatch_shaper   Únewr   s       €r   r   zPareto.expand#   s`   ø€ Ø×(Ò(­°Ñ;Ô;ˆØ”J×%Ò% kÑ2Ô2ˆŒ	Ø”J×%Ò% kÑ2Ô2ˆŒ	Ý‰wŒw~Š~˜k°Sˆ~Ñ9Ô9Ð9r   c                 óX   — | j                              d¬¦  «        }|| j        z  |dz
  z  S )Né   ©Úmin)r   Úclampr   ©r   Úas     r   ÚmeanzPareto.mean)   s1   € ð ŒJ×Ò ÐÑ#Ô#ˆØ4”:‰~  Q¡Ñ'Ð'r   c                 ó   — | j         S ©N)r   ©r   s    r   ÚmodezPareto.mode/   s
   € àŒzÐr   c                 ó°   — | j                              d¬¦  «        }| j                             d¦  «        |z  |dz
                       d¦  «        |dz
  z  z  S )Né   r    r   )r   r"   r   Úpowr#   s     r   ÚvariancezPareto.variance3   sQ   € ð ŒJ×Ò ÐÑ#Ô#ˆØŒz~Š~˜aÑ Ô  1Ñ$¨¨Q©¯ª°A©¬¸!¸a¹%Ñ(@ÑAÐAr   Fr   )Úis_discreteÚ	event_dimc                 ó4   — t          j        | j        ¦  «        S r'   )r   Úgreater_than_eqr   r(   s    r   ÚsupportzPareto.support9   s   € åÔ*¨4¬:Ñ6Ô6Ð6r   c                 ó~   — | j         | j        z                       ¦   «         d| j                             ¦   «         z   z   S )Nr   )r   r   ÚlogÚ
reciprocalr(   s    r   ÚentropyzPareto.entropy=   s5   € Ø”
˜TœZÑ'×,Ò,Ñ.Ô.°!°d´j×6KÒ6KÑ6MÔ6MÑ2MÑNÐNr   r'   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚpositiveÚarg_constraintsr   r   Úpropertyr%   r)   r-   Údependent_propertyr2   r6   Ú__classcell__)r   s   @r   r	   r	      s  ø€ € € € € ðð ð !,Ô 4¸{Ô?SÐTÐT€OðMð Mð Mð Mð Mð Mð:ð :ð :ð :ð :ð :ð ð(ð (ñ „Xð(ð
 ðð ñ „Xðð ðBð Bñ „XðBð
 $€[Ô#°ÀÐCÑCÔCð7ð 7ñ DÔCð7ðOð Oð Oð Oð Oð Oð Or   N)Útorch.distributionsr   Útorch.distributions.exponentialr   Ú,torch.distributions.transformed_distributionr   Útorch.distributions.transformsr   r   Útorch.distributions.utilsr   Ú__all__r	   © r   r   ú<module>rG      s­   ðà +Ð +Ð +Ð +Ð +Ð +Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø PÐ PÐ PÐ PÐ PÐ PØ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ 3Ð 3Ð 3Ð 3Ð 3Ð 3ð ˆ*€ð2Oð 2Oð 2Oð 2Oð 2OÐ$ñ 2Oô 2Oð 2Oð 2Oð 2Or   