ó
    EñiÚ	  ã                   ó„   • 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            	       óR  ^ • \ rS rSrSr\R                  \R                  S.r S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         €ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/distributions/pareto.pyr   ÚPareto.__init__!   sQ   ø€ ô "/¨uÓ!<ÑˆŒ
�D”JÜ §
¡
¸-ÑHˆ	Ü"“n¤o¸!À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   ø€ ð ×(Ñ(¬°Ó;ˆØ—J‘J×%Ñ% kÓ2ˆŒ	Ø—J‘J×%Ñ% 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.mean5   s0   € ð �J‰J×Ñ ÐÐ#ˆØ—:‘:‰~  Q¡Ñ'Ð'r   c                 ó   • U R                   $ ©N)r   ©r   s    r   ÚmodeÚPareto.mode;   s   € à�z‰zÐ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   € ð �J‰J×Ñ ÐÐ#ˆØ�z‰z�~‰~˜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.supportE   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.entropyI   s5   € Ø—
‘
˜TŸZ™ZÑ'×,Ñ,Ó.°!°d·j±j×6KÑ6KÓ6MÑ2MÑNÐNr   r/   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   ÚpositiveÚarg_constraintsr   ÚfloatÚboolr   r   r   r"   Úpropertyr,   r1   r6   Údependent_propertyÚ
Constraintr<   rA   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      s,  ø† ñð !,× 4Ñ 4¸{×?SÑ?SÑT€Oð &*ñ	
Mà˜‰~ð
Mð ˜‰~ð
Mð ˜d‘{ð	
Mð
 
÷
Mð 
Mð CGñ:Ø ð:Ø-5°hÑ-?ð:à	÷:ð :ð ð(�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>r[      s5   ðÝ å Ý +Ý 7Ý Pß HÝ 3Ý ð ˆ*€ô;OÐ$õ ;Or   