L i ddlZddlmZmZddlZddlmZddlmZddlm Z ddl m Z m Z ddl mZddlmZmZdd lmZd gZGd d e Zy) N)OptionalUnion)Tensor) constraints)TransformedDistribution)AffineTransform ExpTransform)Uniform) broadcast_alleuler_constant)_NumberGumbelc eZdZdZej ej dZej Z dde e e fde e e fde e ddffd Zdfd Zd Zede fd Zede fd Zede fd Zede fdZdZxZS)ra Samples from a Gumbel Distribution. Examples:: >>> # xdoctest: +IGNORE_WANT("non-deterministic") >>> m = Gumbel(torch.tensor([1.0]), torch.tensor([2.0])) >>> m.sample() # sample from Gumbel distribution with loc=1, scale=2 tensor([ 1.0124]) Args: loc (float or Tensor): Location parameter of the distribution scale (float or Tensor): Scale parameter of the distribution locscaleNrr validate_argsreturnct||\|_|_tj|jj }t |tr6t |tr&t|jd|jz |}nattj|j|jtj|jd|jz |}tjtdtj|j tjt||j g}t |E|||y)N)rrr)r rrtorchfinfodtype isinstancer r tinyeps full_liker invr ones_likesuper__init__)selfrrrr base_dist transforms __class__s `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/distributions/gumbel.pyr!zGumbel.__init__%s -S%8$* DHHNN+ c7 # 5'(B A MWI%**5!eii-8+I N   %//$***E)E F N   DJJ; 7  JmLc|jt|}|jj||_|jj||_t | ||S)N) _instance)_get_checked_instancerrexpandrr )r" batch_shaper)newr%s r&r+z Gumbel.expand=sR((;((//+.JJ%%k2 w~kS~99r'c|jr|j||j|z |jz }||j z |jj z SN)_validate_args_validate_samplerrexplog)r"valueys r&log_probzGumbel.log_probDsP     ! !% ( XX  +AEEG tzz~~///r'cB|j|jtzzSr/)rrr r"s r&meanz Gumbel.meanJsxx$**~555r'c|jSr/)rr8s r&modez Gumbel.modeNs xxr'chtjtjdz |jzS)N)mathpisqrtrr8s r&stddevz Gumbel.stddevRs"$))A,&$**44r'c8|jjdS)N)rApowr8s r&variancezGumbel.varianceVs{{q!!r'cJ|jjdtzzS)Nr)rr3r r8s r&entropyzGumbel.entropyZszz~~1~#566r'r/)__name__ __module__ __qualname____doc__rrealpositivearg_constraintssupportrrfloatrboolr!r+r6propertyr9r;rArErG __classcell__)r%s@r&rrs *..9M9MNOG )- M 65= !MVU]#M ~ M  M0:0 6f66f555"&""7r')r>typingrrrrtorch.distributionsr,torch.distributions.transformed_distributionrtorch.distributions.transformsrr torch.distributions.uniformr torch.distributions.utilsr r torch.typesr __all__rr'r&r]s; " +PH/C *I7 $I7r'