L i8 ddlmZmZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZmZdd lmZd gZGd d e Zy) )OptionalUnionN)Tensor) constraints) Exponential)euler_constant)TransformedDistribution)AffineTransformPowerTransform) broadcast_allWeibullc eZdZdZej ej dZej Z ddee e fdee e fde e ddffd Z dfd Zede fd Zede fd Zede fd Zd ZxZS)r aD 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 concentrationNrr validate_argsreturncHt||\|_|_|jj|_t t j|j|}t|jtd|jg}t|-|||y)Nrexponentrlocr) r rr reciprocalconcentration_reciprocalrtorch ones_liker r super__init__)selfrrr base_dist transforms __class__s a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/distributions/weibull.pyrzWeibull.__init__(s *7um)L& D&(,(:(:(E(E(G% OODJJ '}  D$A$A B  4  JmLc|jt|}|jj||_|jj||_|jj |_|jj|}t|j td|jg}tt|/||d|j|_ |S)NrrrFr) _get_checked_instancer rexpandrrrr r r rr_validate_args)r batch_shape _instancenewr r!r"s r#r'zWeibull.expand9s(()<JJ%%k2  ..55kB'*'8'8'C'C'E$NN))+6 C$@$@ A  3  gs$Y %$P!00 r$c|jtjtjd|jzzSN)rrexplgammarrs r#meanz Weibull.meanGs.zzEIIell1t7T7T3T&UVVVr$c|j|jdz |jz |jjzzSr-)rrrr1s r#modez Weibull.modeKsE JJ""Q&$*<*<<!!,,./ / r$c |jjdtjtjdd|j zztjdtjd|j zzz zS)Nr.)rpowrr/r0rr1s r#variancezWeibull.varianceSslzz~~a IIell1q4+H+H'H#HI JiiELLT-J-J)JKKL M  r$ctd|jz ztj|j|jzzdzSr-)rrrlogrr1s r#entropyzWeibull.entropyZsC a$"?"?? @ii T%B%BBC D  r$)N)__name__ __module__ __qualname____doc__rpositivearg_constraintssupportrrfloatrboolrr'propertyr2r4r8r; __classcell__)r"s@r#r r s"%%$--O""G )- MVU]#MVU]+M ~ M  M" WfWW f   &   r$)typingrrrrtorch.distributionsrtorch.distributions.exponentialrtorch.distributions.gumbelr,torch.distributions.transformed_distributionr torch.distributions.transformsr r torch.distributions.utilsr __all__r r$r#rPs8" +75PJ3 +N %N r$