L iDddlmZmZddlZddlmZmZddlmZddlm Z ddl m Z m Z ddl mZddlmZmZd gZd ZGd d e Zy) )OptionalUnionN)nanTensor) constraints)TransformedDistribution)AffineTransformPowerTransform)Uniform) broadcast_alleuler_constant Kumaraswamycd||z z}tj|tj|ztj||zz }|tj|zS)zE Computes nth moment of Kumaraswamy using using torch.lgamma )torchlgammaexp)abnarg1 log_values e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/distributions/kumaraswamy.py_momentsrsR q1u9D T"U\\!_4u||D1H7MMI uyy# ##c eZdZdZej ej dZejZdZ dde e e fde e e fde eddffd Zdfd Zede fd Zede fd Zede fd ZdZxZS)raS Samples from a Kumaraswamy distribution. Example:: >>> # xdoctest: +IGNORE_WANT("non-deterministic") >>> m = Kumaraswamy(torch.tensor([1.0]), torch.tensor([1.0])) >>> m.sample() # sample from a Kumaraswamy distribution with concentration alpha=1 and beta=1 tensor([ 0.1729]) Args: concentration1 (float or Tensor): 1st concentration parameter of the distribution (often referred to as alpha) concentration0 (float or Tensor): 2nd concentration parameter of the distribution (often referred to as beta) )concentration1concentration0TNrr validate_argsreturnct||\|_|_tt j |jdt j |jd|}t |jjtddt |jjg}t|)|||y)Nrr)r)exponentg?g)locscale) r rrr r full_liker reciprocalr super__init__)selfrrr base_dist transforms __class__s rr(zKumaraswamy.__init__2s 4A N4 0T0 OOD// 3 OOD// 3' D$7$7$B$B$D E 4 0 D$7$7$B$B$D E JmLrc|jt|}|jj||_|jj||_t | ||S)N) _instance)_get_checked_instancerrexpandrr')r) batch_shaper.newr,s rr0zKumaraswamy.expandGsZ((i@!0077 D!0077 Dw~kS~99rcDt|j|jdSNr)rrrr)s rmeanzKumaraswamy.meanMs++T-@-@!DDrc,|jj|j jz|j |jzjz }t||jdk|jdkz<|j Sr4)rr&log1prrr)r)log_modes rmodezKumaraswamy.modeQs    * * ,1D1D0D/K/K/M M###d&9&99@@B C KN$%%)d.A.AA.EFG||~rct|j|jdtj|j dz S)N)rrrrpowr6r5s rvariancezKumaraswamy.variance[s9++T-@-@!Duyy IIqH   rcXd|jjz }d|jjz }tj|jdzt z}|||zztj |jz tj |jz Sr4)rr&rrdigammar log)r)t1t0H0s rentropyzKumaraswamy.entropyas $$//1 1 $$//1 1 ]]4..2 3n D 2g ii++, -ii++, - r)N)__name__ __module__ __qualname____doc__rpositivearg_constraints unit_intervalsupport has_rsamplerrfloatrboolr(r0propertyr6r:r>rE __classcell__)r,s@rrrs$&..%..O''GK )- Mfem,Mfem,M ~ M  M*: EfEEf &   r)typingrrrrrtorch.distributionsr,torch.distributions.transformed_distributionrtorch.distributions.transformsr r torch.distributions.uniformr torch.distributions.utilsr r __all__rrrrr[s:" +PJ/C /$Q )Q r