
    IЦi                     t    S SK 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/r " S	 S\5      rg)
    N)constraints)Exponential)euler_constant)TransformedDistribution)AffineTransformPowerTransform)broadcast_allWeibullc                      ^  \ rS rSrSr\R                  \R                  S.r\R                  rSU 4S jjr	SU 4S jjr
\S 5       r\S 5       r\S 5       rS	 rS
rU =r$ )r
      a  
Samples from a two-parameter Weibull distribution.

Example:

    >>> # xdoctest: +IGNORE_WANT("non-deterministic")
    >>> m = Weibull(torch.tensor([1.0]), torch.tensor([1.0]))
    >>> m.sample()  # sample from a Weibull distribution with scale=1, concentration=1
    tensor([ 0.4784])

Args:
    scale (float or Tensor): Scale parameter of distribution (lambda).
    concentration (float or Tensor): Concentration parameter of distribution (k/shape).
)scaleconcentrationc                 .  > [        X5      u  U l        U l        U R                  R                  5       U l        [        [        R                  " U R                  5      US9n[        U R                  S9[        SU R                  S9/n[        TU ]-  XEUS9  g )Nvalidate_argsexponentr   locr   )r	   r   r   
reciprocalconcentration_reciprocalr   torch	ones_liker   r   super__init__)selfr   r   r   	base_dist
transforms	__class__s         Z/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/distributions/weibull.pyr   Weibull.__init__#   s    )6u)L&
D&(,(:(:(E(E(G%OODJJ'}
	 D$A$AB4

 	mL    c                   > U R                  [        U5      nU R                  R                  U5      Ul        U R                  R                  U5      Ul        UR                  R                  5       Ul        U R                  R                  U5      n[        UR                  S9[        SUR                  S9/n[        [        U]/  XESS9  U R                  Ul        U$ )Nr   r   r   Fr   )_get_checked_instancer
   r   expandr   r   r   r   r   r   r   r   _validate_args)r   batch_shape	_instancenewr   r   r   s         r    r%   Weibull.expand/   s    (()<JJ%%k2	 ..55kB'*'8'8'C'C'E$NN))+6	C$@$@A3

 	gs$Y%$P!00
r"   c                     U R                   [        R                  " [        R                  " SU R                  -   5      5      -  $ N   )r   r   explgammar   r   s    r    meanWeibull.mean=   s.    zzEIIell1t7T7T3T&UVVVr"   c                     U R                   U R                  S-
  U R                  -  U R                  R                  5       -  -  $ r,   )r   r   r   r0   s    r    modeWeibull.modeA   sE     JJ""Q&$*<*<<!!,,.//	
r"   c           	      $   U R                   R                  S5      [        R                  " [        R                  " SSU R
                  -  -   5      5      [        R                  " S[        R                  " SU R
                  -   5      -  5      -
  -  $ )N   r-   )r   powr   r.   r/   r   r0   s    r    varianceWeibull.varianceI   sl    zz~~a IIell1q4+H+H'H#HIJiiELLT-J-J)JKKLM
 	
r"   c                     [         SU R                  -
  -  [        R                  " U R                  U R                  -  5      -   S-   $ r,   )r   r   r   logr   r0   s    r    entropyWeibull.entropyP   sC    a$"?"??@ii

T%B%BBCD	
r"   )r   r   r   )N)__name__
__module____qualname____firstlineno____doc__r   positivearg_constraintssupportr   r%   propertyr1   r4   r9   r=   __static_attributes____classcell__)r   s   @r    r
   r
      s     %%$--O ""G
M W W 
 
 
 

 
r"   )r   torch.distributionsr   torch.distributions.exponentialr   torch.distributions.gumbelr   ,torch.distributions.transformed_distributionr   torch.distributions.transformsr   r   torch.distributions.utilsr	   __all__r
    r"   r    <module>rR      s2     + 7 5 P J 3 +G
% G
r"   