+
    &je                         ^ RI t ^ RI HtHt ^ RIHt ^ RIHt ^ RIHtH	t	 ^ RI
Ht ^ RIHtHt R.tR	 t ! R
 R]4      tR# )    N)nanTensor)constraints)TransformedDistribution)AffineTransformPowerTransform)Uniform)broadcast_alleuler_constantKumaraswamyc                    ^W ,          ,           p\         P                  ! V4      \         P                  ! V4      ,           \         P                  ! W1,           4      ,
          pV\         P                  ! V4      ,          # )z=
Computes nth moment of Kumaraswamy using using torch.lgamma
)torchlgammaexp)abnarg1	log_values   &&&  w/Users/jameslopez/projects/CWCArchive/cwc-podcast/.venv/lib/python3.14/site-packages/torch/distributions/kumaraswamy.py_momentsr      sN     qu9DT"U\\!_4u||DH7MMIuyy###    c                      a a ] tR t^t oRtR]P                  R]P                  /t]P                  t	Rt
RV3R lV 3R llltRV 3R llt]V3R lR	 l4       t]V3R
 lR l4       t]V3R lR l4       tR tRtVtV ;t# )r   a#  
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)
concentration1concentration0Tc                ^   < V ^8  d   QhRS[ S[,          RS[ S[,          RS[R,          RR/# )   r   r   validate_argsNreturn)r   floatbool)format__classdict__s   "r   __annotate__Kumaraswamy.__annotate__2   sE     M MM M d{	M
 
Mr   c                  < \        W4      w  V n        V n        \        \        P
                  ! V P                  ^ 4      \        P
                  ! V P                  ^4      VR7      p\        V P                  P                  4       R7      \        RRR7      \        V P                  P                  4       R7      .p\        SV `)  WEVR7       R# )r   )r   )exponentg      ?)locscaleNg      )r
   r   r   r	   r   	full_liker   
reciprocalr   super__init__)selfr   r   r   	base_dist
transforms	__class__s   &&&&  r   r-   Kumaraswamy.__init__2   s     4A4
0T0 OOD//3OOD//3'
	 D$7$7$B$B$DE40D$7$7$B$B$DE

 	mLr   c                   < V P                  \        V4      pV P                  P                  V4      Vn        V P                  P                  V4      Vn        \
        SV `  WR 7      # ))	_instance)_get_checked_instancer   r   expandr   r,   )r.   batch_shaper4   newr1   s   &&& r   r6   Kumaraswamy.expandH   sX    ((i@!0077D!0077Dw~k~99r   c                    < V ^8  d   QhRS[ /# r   r   r   )r"   r#   s   "r   r$   r%   O   s     E Ef Er   c                D    \        V P                  V P                  ^4      #    )r   r   r   r.   s   &r   meanKumaraswamy.meanN   s    ++T-@-@!DDr   c                    < V ^8  d   QhRS[ /# r;   r<   )r"   r#   s   "r   r$   r%   S   s      f r   c                J   V P                   P                  4       V P                   ) P                  4       ,          V P                   ) V P                  ,          P                  4       ,
          p\        WP                   ^8  V P                  ^8  ,          &   VP                  4       # r>   )r   r+   log1pr   r   r   )r.   log_modes   & r   modeKumaraswamy.modeR   s     **,1D1D0D/K/K/MM###d&9&99@@BC 	 KN%%)d.A.AA.EFG||~r   c                    < V ^8  d   QhRS[ /# r;   r<   )r"   r#   s   "r   r$   r%   ]   s     
 
& 
r   c                    \        V P                  V P                  ^4      \        P                  ! V P
                  ^4      ,
          # )r   )r   r   r   r   powrA   r@   s   &r   varianceKumaraswamy.variance\   s9    ++T-@-@!DuyyIIqH
 
 	
r   c                   ^V P                   P                  4       ,
          p^V P                  P                  4       ,
          p\        P                  ! V P                  ^,           4      \
        ,           pVW,          ,           \        P                  ! V P                   4      ,
          \        P                  ! V P                  4      ,
          # r>   )r   r+   r   r   digammar   log)r.   t1t0H0s   &   r   entropyKumaraswamy.entropyb   s    $$//11$$//11]]4..23nDgii++,- ii++,-	
r   )r   r   )N)__name__
__module____qualname____firstlineno____doc__r   positivearg_constraintsunit_intervalsupporthas_rsampler-   r6   propertyrA   rG   rL   rT   __static_attributes____classdictcell____classcell__)r1   r#   s   @@r   r   r      s     $ 	+..+..O
 ''GKM M,: E E   
 

	
 	
r   )r   r   r   torch.distributionsr   ,torch.distributions.transformed_distributionr   torch.distributions.transformsr   r   torch.distributions.uniformr	   torch.distributions.utilsr
   r   __all__r   r    r   r   <module>rk      s9      + P J / C /$S
) S
r   