L i xddlmZmZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z dgZGd deZy) )OptionalUnionN)Tensor) constraints) Distribution) broadcast_all)_Number_sizeLaplacec NeZdZdZej ej dZej ZdZ e de fdZ e de fdZ e de fdZe de fdZ dd ee efd ee efd eedd ffd Zdfd Zej.fdede fdZdZdZdZdZxZS)r a Creates a Laplace distribution parameterized by :attr:`loc` and :attr:`scale`. Example:: >>> # xdoctest: +IGNORE_WANT("non-deterministic") >>> m = Laplace(torch.tensor([0.0]), torch.tensor([1.0])) >>> m.sample() # Laplace distributed with loc=0, scale=1 tensor([ 0.1046]) Args: loc (float or Tensor): mean of the distribution scale (float or Tensor): scale of the distribution )locscaleTreturnc|jSNr selfs a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/distributions/laplace.pymeanz Laplace.mean# xxc|jSrrrs rmodez Laplace.mode'rrc>d|jjdzSN)rpowrs rvariancezLaplace.variance+s4::>>!$$$rc d|jzS)Ng;f?)rrs rstddevzLaplace.stddev/s$**$$rNr r validate_argsct||\|_|_t|tr%t|trt j }n|jj}t|%||y)Nr") rr r isinstancer torchSizesizesuper__init__)rr rr" batch_shape __class__s rr*zLaplace.__init__3sY -S%8$* c7 # 5'(B**,K((--/K MBrc*|jt|}tj|}|jj ||_|j j ||_tt|#|d|j|_ |S)NFr$) _get_checked_instancer r&r'r expandrr)r*_validate_args)rr+ _instancenewr,s rr/zLaplace.expand@st(()<jj- ((//+.JJ%%k2  gs$[$F!00 r sample_shapec|j|}tj|jj}tj j rtj||jj|jjdzdz }|j|j|jztj|jj|j zz S|jj|j!|j"dz d}|j|j|jztj|j zz S)N)dtypedevicer)min)_extended_shaper&finfor r5_C_get_tracing_staterandr6rsignlog1pabsclamptinyr2uniform_eps)rr3shaper:us rrsamplezLaplace.rsampleIs$$\2 DHHNN+ 88 & & ( 5txxORSSVWWA88djj16683ekk5::..7  HHLL  ( (Q :xx$**qvvx/%++quuwh2GGGGrc|jr|j|tjd|jz tj ||j z |jz z Sr)r0_validate_sampler&logrr@r rvalues rlog_probzLaplace.log_probWsS     ! !% ( !djj.))EIIedhh6F,G$**,TTTrc|jr|j|dd||jz jzt j ||jz j |jz zz S)N?)r0rIr r>r&expm1r@rrKs rcdfz Laplace.cdf\sp     ! !% (SEDHH,2244u{{dhh # # % % 28    rc|dz }|j|j|jztjd|j zzz S)NrO)r rr>r&r?r@)rrLterms ricdfz Laplace.icdfcsAs{xx$**{{}4u{{2 ?7SSSSrcLdtjd|jzzS)Nr7r)r&rJrrs rentropyzLaplace.entropygs599Q^,,,rr)__name__ __module__ __qualname____doc__rrealpositivearg_constraintssupport has_rsamplepropertyrrrrr!rfloatrboolr*r/r&r'r rGrMrQrUrW __classcell__)r,s@rr r s# *..9M9MNOGK ff%&%%%%%)- C 65= ! CVU]# C ~ C  C-7EJJL HE HV HU  T-r)typingrrr&rtorch.distributionsr torch.distributions.distributionrtorch.distributions.utilsr torch.typesr r __all__r rrrls1" +93& +Y-lY-r