L iD~ddlmZmZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z dgZd ZGd deZy) )OptionalUnionN)Tensor) constraints)ExponentialFamily) broadcast_all)_Number_sizeGammac,tj|SN)torch_standard_gamma) concentrations _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/distributions/gamma.pyrrs   //c \eZdZdZej ej dZejZdZ dZ e de fdZ e de fdZe de fdZ dd ee efd ee efd eedd ffd Zdfd Zej.fdede fdZdZdZe dee e ffdZdZdZxZ S)r aS Creates a Gamma distribution parameterized by shape :attr:`concentration` and :attr:`rate`. Example:: >>> # xdoctest: +IGNORE_WANT("non-deterministic") >>> m = Gamma(torch.tensor([1.0]), torch.tensor([1.0])) >>> m.sample() # Gamma distributed with concentration=1 and rate=1 tensor([ 0.1046]) Args: concentration (float or Tensor): shape parameter of the distribution (often referred to as alpha) rate (float or Tensor): rate parameter of the distribution (often referred to as beta), rate = 1 / scale rrateTrreturnc4|j|jz Sr rselfs rmeanz Gamma.mean-s!!DII--rcZ|jdz |jz jdS)Nrmin)rrclamprs rmodez Gamma.mode1s*##a'4994;;;BBrcR|j|jjdz S)N)rrpowrs rvariancezGamma.variance5s !!DIIMM!$444rNrr validate_argsct||\|_|_t|tr%t|trt j }n|jj}t|%||y)Nr%) rrr isinstancer rSizesizesuper__init__)rrrr% batch_shape __class__s rr,zGamma.__init__9s_ )6mT(J%DI mW -*T72K**,K,,113K MBrc*|jt|}tj|}|jj ||_|j j ||_tt|#|d|j|_ |S)NFr') _get_checked_instancer rr)rexpandrr+r,_validate_args)rr- _instancenewr.s rr1z Gamma.expandFsy(( :jj-  ..55kB99##K0 eS";e"D!00 r sample_shapec6|j|}t|jj||jj|z }|j j tj|jj|S)Nr) _extended_shaperrr1rdetachclamp_rfinfodtypetiny)rr5shapevalues rrsamplez Gamma.rsampleOs$$\2 2 2 9 9% @ADIIDTDT E     EKK(--   rctj||jj|jj}|j r|j |tj|j|jtj|jdz |z|j|zz tj|jz S)N)r;devicer) r as_tensorrr;rAr2_validate_samplexlogyrlgammarr>s rlog_probzGamma.log_probYsTYY__TYYEUEUV     ! !% ( KK**DII 6kk$,,q0%8 9ii% ll4--. / rc|jtj|jz tj|jzd|jz tj |jzzS)Ng?)rrlogrrEdigammars rentropyz Gamma.entropydsf   ii " #ll4--. /T'''5==9K9K+LL M rc:|jdz |j fSNrrrs r_natural_paramszGamma._natural_paramsls""Q& 33rctj|dz|dztj|j zzSrM)rrErI reciprocal)rxys r_log_normalizerzGamma._log_normalizerps4||AE"a!euyy!,,./I%IIIrc|jr|j|tjj |j |j |zSr )r2rCrspecialgammaincrrrFs rcdfz Gamma.cdfss?     ! !% (}}%%d&8&8$))e:KLLrr )!__name__ __module__ __qualname____doc__rpositivearg_constraints nonnegativesupport has_rsample_mean_carrier_measurepropertyrrr r$rfloatrboolr,r1rr)r r?rGrKtuplerNrSrW __classcell__)r.s@rr r s7$%--$$O%%GK .f..CfCC5&55)- CVU]+ CFEM" C ~ C  C-7EJJLEV   4vv~!644JMr)typingrrrrtorch.distributionsrtorch.distributions.exp_familyrtorch.distributions.utilsr torch.typesr r __all__rr rrrns9" +<3& )0cM cMr