L iddlZddlmZmZddlZddlmZddlmZddlm Z ddl m Z m Z ddl mZmZdgZGd de Zy) N)OptionalUnion)Tensor) constraints)ExponentialFamily)_standard_normal broadcast_all)_Number_sizeNormalc eZdZdZej ej dZej ZdZ dZ e de fdZ e de fdZe de fdZe de fd Z dd ee efd ee efd eedd ffd Zdfd Zej0fdZej0fdede fdZdZdZdZdZe de e e ffdZ!dZ"xZ#S)r a+ Creates a normal (also called Gaussian) distribution parameterized by :attr:`loc` and :attr:`scale`. Example:: >>> # xdoctest: +IGNORE_WANT("non-deterministic") >>> m = Normal(torch.tensor([0.0]), torch.tensor([1.0])) >>> m.sample() # normally distributed with loc=0 and scale=1 tensor([ 0.1046]) Args: loc (float or Tensor): mean of the distribution (often referred to as mu) scale (float or Tensor): standard deviation of the distribution (often referred to as sigma) )locscaleTrreturnc|jSNrselfs `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/distributions/normal.pymeanz Normal.mean' xxc|jSrrrs rmodez Normal.mode+rrc|jSr)rrs rstddevz Normal.stddev/s zzrc8|jjdSN)rpowrs rvariancezNormal.variance3s{{q!!rNrr validate_argsct||\|_|_t|tr%t|trt j }n|jj}t|%||y)Nr#) r rr isinstancer torchSizesizesuper__init__)rrrr# batch_shape __class__s rr+zNormal.__init__7sY -S%8$* c7 # 5'(B**,K((--/K MBrc*|jt|}tj|}|jj ||_|j j ||_tt|#|d|j|_ |S)NFr%) _get_checked_instancer r'r(rexpandrr*r+_validate_args)rr, _instancenewr-s rr0z Normal.expandDst((;jj- ((//+.JJ%%k2  fc#Ku#E!00 rc|j|}tj5tj|jj ||j j |cdddS#1swYyxYwr)_extended_shaper'no_gradnormalrr0r)r sample_shapeshapes rsamplez Normal.sampleMs^$$\2 ]]_ R<< 6 8I8I%8PQ R R Rs AA88Br8c|j|}t||jj|jj}|j||j zzS)N)dtypedevice)r5rrr<r=r)rr8r9epss rrsamplezNormal.rsampleRsH$$\2uDHHNN488??Sxx# ***rc|jr|j||jdz}t|jtrt j |jn|jj }||jz dz d|zz |z t j t jdt jzz Sr) r1_validate_samplerr&r mathlogrsqrtpi)rvaluevar log_scales rlog_probzNormal.log_probWs     ! !% (jj!m$**g. HHTZZ !  txxA% &!c' 2 hhtyyTWW-. / rc|jr|j|ddtj||jz |j j ztjdz zzS)N?r ) r1rAr'erfrr reciprocalrBrDrrFs rcdfz Normal.cdfgs`     ! !% (  5488+tzz/D/D/FFSTUV V  rc|j|jtjd|zdz zt j dzzS)Nr rL)rrr'erfinvrBrDrOs ricdfz Normal.icdfns8xx$**u||AIM'BBTYYq\QQQrcddtjdtjzzztj|jzS)NrKr )rBrCrEr'rrs rentropyzNormal.entropyqs5S488AK000599TZZ3HHHrc|j|jjdz d|jjdjzfS)Nr g)rrr!rNrs r_natural_paramszNormal._natural_paramsts>4::>>!,,dTZZ^^A5F5Q5Q5S.STTrcd|jdz|z dtjtj |z zzS)Ngпr rK)r!r'rCrBrE)rxys r_log_normalizerzNormal._log_normalizerxs7quuQx!#cEIItwwhl,C&CCCrr)$__name__ __module__ __qualname____doc__rrealpositivearg_constraintssupport has_rsample_mean_carrier_measurepropertyrrrrr"rfloatrboolr+r0r'r(r:r r?rIrPrSrUtuplerWr[ __classcell__)r-s@rr r sf"*..9M9MNOGK ff"&"")- C 65= ! CVU]# C ~ C  C#-%**,R -7EJJL+E+V+   RIUvv~!6UUDr)rBtypingrrr'rtorch.distributionsrtorch.distributions.exp_familyrtorch.distributions.utilsrr torch.typesr r __all__r rrrrs7 " +<E& *iD iDr