Ë
    f^(h†	  ã                   ó„   — d dl mZ d dlmZ 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 dlmZ d	gZ G d
„ d	e	«      Zy)é    )ÚOptional)ÚTensor)Úconstraints)ÚExponential)ÚTransformedDistribution)ÚAffineTransformÚExpTransform)Úbroadcast_all)Ú_sizeÚParetoc            	       ó.  ‡ — e Zd ZdZej
                  ej
                  dœZ	 ddededee	   ddfˆ fd„Z
	 dd	ed
ed    dd fˆ fd„Zedefd„«       Zedefd„«       Zedefd„«       Z ej"                  dd¬«      dej$                  fd„«       Zdef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ÚscaleNr   r   Úvalidate_argsÚreturnc                 óÌ   •— t        ||«      \  | _        | _        t        | j                  |¬«      }t	        «       t        d| j                  ¬«      g}t        ‰| �  |||¬«       y )N)r   r   )Úlocr   )r
   r   r   r   r	   r   ÚsuperÚ__init__)Úselfr   r   r   Ú	base_distÚ
transformsÚ	__class__s         €úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/distributions/pareto.pyr   zPareto.__init__!   sU   ø€ ô "/¨u°eÓ!<ÑˆŒ
�D”JÜ §
¡
¸-ÔHˆ	Ü"“n¤o¸!À4Ç:Á:Ô&NÐOˆ
Ü‰Ñ˜ J¸mÐÕLó    Úbatch_shapeÚ	_instancec                 óÒ   •— | j                  t        |«      }| j                  j                  |«      |_        | j                  j                  |«      |_        t
        ‰| �  ||¬«      S )N)r   )Ú_get_checked_instancer   r   Úexpandr   r   )r   r   r   Únewr   s       €r   r    zPareto.expand)   sV   ø€ ð ×(Ñ(¬°Ó;ˆØ—J‘J×%Ñ% kÓ2ˆŒ	Ø—J‘J×%Ñ% kÓ2ˆŒ	Ü‰w‰~˜k°Sˆ~Ó9Ð9r   c                 ód   — | j                   j                  d¬«      }|| j                  z  |dz
  z  S )Né   ©Úmin)r   Úclampr   ©r   Úas     r   ÚmeanzPareto.mean1   s2   € ð �J‰J×Ñ ÐÓ#ˆØ�4—:‘:‰~  Q¡Ñ'Ð'r   c                 ó   — | j                   S ©N)r   ©r   s    r   ÚmodezPareto.mode7   s   € à�z‰zÐr   c                 ó¬   — | j                   j                  d¬«      }| j                  j                  d«      |z  |dz
  j                  d«      |dz
  z  z  S )Né   r$   r#   )r   r&   r   Úpowr'   s     r   ÚvariancezPareto.variance;   sM   € ð �J‰J×Ñ ÐÓ#ˆØ�z‰z�~‰~˜aÓ  1Ñ$¨¨Q©¯©°A«¸!¸a¹%Ñ(@ÑAÐAr   Fr   )Úis_discreteÚ	event_dimc                 ó@   — t        j                  | j                  «      S r+   )r   Úgreater_than_eqr   r,   s    r   ÚsupportzPareto.supportA   s   € ä×*Ñ*¨4¯:©:Ó6Ð6r   c                 óŒ   — | j                   | j                  z  j                  «       d| j                  j                  «       z   z   S )Nr#   )r   r   ÚlogÚ
reciprocalr,   s    r   ÚentropyzPareto.entropyE   s5   € Ø—
‘
˜TŸZ™ZÑ'×,Ñ,Ó.°!°d·j±j×6KÑ6KÓ6MÑ2MÑNÐNr   r+   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚpositiveÚarg_constraintsr   r   Úboolr   r   r    Úpropertyr)   r-   r1   Údependent_propertyÚ
Constraintr6   r:   Ú__classcell__)r   s   @r   r   r      s  ø„ ñð !,× 4Ñ 4¸{×?SÑ?SÑT€Oð MQñMØðMØ$*ðMØ;CÀD¹>ðMà	õMð CGñ:Ø ð:Ø-5°hÑ-?ð:à	õ:ð ð(�fò (ó ð(ð
 ð�fò ó ðð ðB˜&ò Bó ðBð
 $€[×#Ñ#°ÀÔCð7˜×/Ñ/ò 7ó Dð7ð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>rP      s5   ðÝ å Ý +Ý 7Ý Pß HÝ 3Ý ð ˆ*€ô7OÐ$õ 7Or   