
    [ThQ                         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	  S SK
JrJr  S SKJr  S	/r " S
 S	\	5      rg)    N)Tensor)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\4S j5       r\S\4S j5       r\S\4S	 j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         S/var/www/auris/envauris/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.expand1   s    (()<JJ%%k2	 ..55kB'*'8'8'C'C'E$NN))+6	C$@$@A3

 	gs$Y%$P!00
r#   returnc                     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   r2   s    r!   modeWeibull.modeC   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   r0   r1   r   r2   s    r!   varianceWeibull.varianceK   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   r2   s    r!   entropyWeibull.entropyR   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&   propertyr   r3   r6   r;   r?   __static_attributes____classcell__)r    s   @r!   r   r      s      %%$--O ""G
M Wf W W 
f 
 
 
& 
 

 
r#   )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>rT      s5      + 7 5 P J 3 +H
% H
r#   