
    [Th	                         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 SK
JrJr  S SKJr  S SKJr  S	/r " S
 S	\	5      rg)    )Optional)Tensor)constraints)Exponential)TransformedDistribution)AffineTransformExpTransform)broadcast_all)_sizeParetoc            	       F  ^  \ rS rSrSr\R                  \R                  S.r SS\S\S\	\
   SS4U 4S	 jjjr SS
\S\	S    SS 4U 4S jjjr\S\4S j5       r\S\4S j5       r\S\4S j5       r\R$                  " SSS9S\R&                  4S j5       rS\4S j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scaleNr   r   validate_argsreturnc                    > [        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)r   r   )locr   )r
   r   r   r   r	   r   super__init__)selfr   r   r   	base_dist
transforms	__class__s         R/var/www/auris/envauris/lib/python3.13/site-packages/torch/distributions/pareto.pyr   Pareto.__init__!   sQ     "/u!<
DJ

-H	"no!4::&NO
mL    batch_shape	_instancec                    > 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)r   )_get_checked_instancer   r   expandr   r   )r   r   r   newr   s       r   r"   Pareto.expand)   sT     ((;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.mean1   s0     JJ#::~Q''r   c                     U R                   $ N)r   r   s    r   modePareto.mode7   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.variance;   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   r0   s    r   supportPareto.supportA   s    **4::66r   c                     U R                   U R                  -  R                  5       SU R                  R                  5       -   -   $ )Nr&   )r   r   log
reciprocalr0   s    r   entropyPareto.entropyE   s5    

TZZ',,.!djj6K6K6M2MNNr   r/   )__name__
__module____qualname____firstlineno____doc__r   positivearg_constraintsr   r   boolr   r   r"   propertyr,   r1   r6   dependent_property
Constraintr<   rA   __static_attributes____classcell__)r   s   @r   r   r      s     !, 4 4{?S?STO MQMM$*M;CD>M	M M CG: :-5h-?:	: : (f ( (
 f   B& B B
 ##C7// 7 D7O O Or   N)typingr   torchr   torch.distributionsr   torch.distributions.exponentialr   ,torch.distributions.transformed_distributionr   torch.distributions.transformsr   r	   torch.distributions.utilsr
   torch.typesr   __all__r    r   r   <module>rZ      s5      + 7 P H 3  *7O$ 7Or   