
    9i	                         S SK Jr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Union)Tensor)constraints)Exponential)TransformedDistribution)AffineTransformExpTransform)broadcast_all)_sizeParetoc            	       Z  ^  \ rS rSrSr\R                  \R                  S.r SS\\	\
4   S\\	\
4   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         Z/var/www/html/land-doc-ocr/venv/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.mean4   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.variance>   sM     JJ#zz~~a 1$QA!a%(@AAr   Fr   )is_discrete	event_dimc                 B    [         R                  " U R                  5      $ r0   )r   greater_than_eqr   r1   s    r   supportPareto.supportD   s    **4::66r   c                     U R                   U R                  -  R                  5       SU R                  R                  5       -   -   $ )Nr'   )r   r   log
reciprocalr1   s    r   entropyPareto.entropyH   s5    

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