
    IЦi                     `    S SK Jr  S SKJr  S SKJr  S SKJrJr  S SK	J
r
  S/r " S S\5      rg)	    )constraints)Exponential)TransformedDistribution)AffineTransformExpTransform)broadcast_allParetoc                      ^  \ rS rSrSr\R                  \R                  S.rSU 4S jjrSU 4S jjr	\
S 5       r\
S 5       r\
S 5       r\R                  " S	S
S9S 5       rS rSrU =r$ )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scalec                    > [        X5      u  U l        U l        [        U R                  US9n[	        5       [        SU R                  S9/n[        TU ]  XEUS9  g )N)validate_argsr   )locr   )r   r   r   r   r   r   super__init__)selfr   r   r   	base_dist
transforms	__class__s         Y/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/distributions/pareto.pyr   Pareto.__init__   sO    !.u!<
DJ

-H	"no!4::&NO
mL    c                    > U R                  [        U5      nU R                  R                  U5      Ul        U R                  R                  U5      Ul        [
        TU ]  XS9$ )N)	_instance)_get_checked_instancer	   r   expandr   r   )r   batch_shaper   newr   s       r   r   Pareto.expand#   sR    ((;JJ%%k2	JJ%%k2	w~k~99r   c                 \    U R                   R                  SS9nXR                  -  US-
  -  $ )N   min)r   clampr   r   as     r   meanPareto.mean)   s0     JJ#::~Q''r   c                     U R                   $ N)r   r   s    r   modePareto.mode/   s    zzr   c                     U R                   R                  SS9nU R                  R                  S5      U-  US-
  R                  S5      US-
  -  -  $ )N   r#   r"   )r   r%   r   powr&   s     r   variancePareto.variance3   sM     JJ#zz~~a 1$QA!a%(@AAr   Fr   )is_discrete	event_dimc                 B    [         R                  " U R                  5      $ r+   )r   greater_than_eqr   r,   s    r   supportPareto.support9   s    **4::66r   c                     U R                   U R                  -  R                  5       SU R                  R                  5       -   -   $ )Nr"   )r   r   log
reciprocalr,   s    r   entropyPareto.entropy=   s5    

TZZ',,.!djj6K6K6M2MNNr   r+   )__name__
__module____qualname____firstlineno____doc__r   positivearg_constraintsr   r   propertyr(   r-   r2   dependent_propertyr8   r=   __static_attributes____classcell__)r   s   @r   r	   r	      s     !, 4 4{?S?STOM: ( (
   B B
 ##C7 D7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>rQ      s,    + 7 P H 3 *2O$ 2Or   