
    9i8                         S SK JrJr  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)    )OptionalUnionN)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S\	\
\4   S\	\
\4   S\\   SS4U 4S	 j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).
    validate_args (bool, optional): Whether to validate arguments. Default: None.
)scaleconcentrationNr   r   validate_argsreturnc                 .  > [        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r   exponentr   locr   )r   r   r   
reciprocalconcentration_reciprocalr   torch	ones_liker   r
   super__init__)selfr   r   r   	base_dist
transforms	__class__s         [/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/torch/distributions/weibull.pyr   Weibull.__init__(   s     *7u)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.expand9   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.meanG   s.    zzEIIell1t7T7T3T&UVVVr&   c                     U R                   U R                  S-
  U R                  -  U R                  R                  5       -  -  $ r0   )r   r   r   r4   s    r$   modeWeibull.modeK   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   r1   )r   powr   r2   r3   r   r4   s    r$   varianceWeibull.varianceS   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-   $ r0   )r   r   r   logr   r4   s    r$   entropyWeibull.entropyZ   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   floatr   boolr   r)   propertyr5   r8   r=   rA   __static_attributes____classcell__)r#   s   @r$   r   r      s    " %%$--O ""G )-	MVU]#M VU]+M  ~	M
 
M M" Wf W W 
f 
 
 
& 
 

 
r&   )typingr   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>rY      s8    "   + 7 5 P J 3 +N
% N
r&   