L i xddlmZmZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z dgZGd deZy) )OptionalUnionN)Tensor) constraints)ExponentialFamily) broadcast_all)_Number_size ExponentialcPeZdZdZdej iZejZdZ dZ e de fdZ e de fdZe de fdZe de fd Z ddee efd eedd ffd Zdfd Zej0fdede fdZdZdZdZdZe dee fdZ dZ!xZ"S)r an Creates a Exponential distribution parameterized by :attr:`rate`. Example:: >>> # xdoctest: +IGNORE_WANT("non-deterministic") >>> m = Exponential(torch.tensor([1.0])) >>> m.sample() # Exponential distributed with rate=1 tensor([ 0.1046]) Args: rate (float or Tensor): rate = 1 / scale of the distribution rateTrreturnc6|jjSNr reciprocalselfs e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/distributions/exponential.pymeanzExponential.mean#yy##%%c@tj|jSr)torch zeros_liker rs rmodezExponential.mode's **rc6|jjSrrrs rstddevzExponential.stddev+rrc8|jjdS)N)r powrs rvariancezExponential.variance/syy}}R  rN validate_argsct|\|_t|trt j n|jj }t|!||y)Nr#) rr isinstancer rSizesizesuper__init__)rr r# batch_shape __class__s rr*zExponential.__init__3sF %T* &0w&?ejjlTYY^^EU  MBrc|jt|}tj|}|jj ||_t t||d|j|_|S)NFr%) _get_checked_instancer rr'r expandr)r*_validate_args)rr+ _instancenewr,s rr/zExponential.expand<s`((i@jj- 99##K0 k3(E(J!00 r sample_shapec|j|}|jj|j|jz Sr)_extended_shaper r2 exponential_)rr3shapes rrsamplezExponential.rsampleDs7$$\2yy}}U#002TYY>>rc|jr|j||jj|j|zz Sr)r0_validate_sampler logrvalues rlog_probzExponential.log_probHs7     ! !% (yy}}U!222rc|jr|j|dtj|j |zz S)N)r0r:rexpr r<s rcdfzExponential.cdfMs8     ! !% (599diiZ%/000rcJtj|  |jz Sr)rlog1pr r<s ricdfzExponential.icdfRs UF##dii//rcFdtj|jz S)Ng?)rr;r rs rentropyzExponential.entropyUsUYYtyy)))rc|j fSr)r rs r_natural_paramszExponential._natural_paramsXs }rc0tj|  Sr)rr;)rxs r_log_normalizerzExponential._log_normalizer\s 1" ~rr)#__name__ __module__ __qualname____doc__rpositivearg_constraints nonnegativesupport has_rsample_mean_carrier_measurepropertyrrrrr"rfloatrboolr*r/rr'r r8r>rBrErGtuplerIrL __classcell__)r,s@rr r s. {334O%%GK &f&&+f++&&&!&!! )-CFEM"C ~C  C-7EJJL?E?V?3 1 0*vr)typingrrrrtorch.distributionsrtorch.distributions.exp_familyrtorch.distributions.utilsr torch.typesr r __all__r rrrcs2" +<3& /N#Nr