+
    É&j\  ã                   óp   € ^ RI t ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	H
t
 R.tR t ! R	 R]4      tR# )
é    N©ÚTensor)Úconstraints)ÚExponentialFamily)Úbroadcast_all)Ú_NumberÚ_sizeÚGammac                 ó.   € \         P                  ! V 4      # ©N)ÚtorchÚ_standard_gamma)Úconcentrations   &Úq/Users/jameslopez/projects/CWCArchive/cwc-podcast/.venv/lib/python3.14/site-packages/torch/distributions/gamma.pyr   r      s   € Ü× Ò  Ó/Ð/ó    c                   óh  a a€ ] tR t^t oRtR]P                  R]P                  /t]P                  t	Rt
^ 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V3R lV 3R llltRV 3R llt]P&                  ! 4       3V3R lR lltR tR t]V3R lR l4       tR tR tRtVtV ;t# )r
   a#  
Creates a Gamma distribution parameterized by shape :attr:`concentration` and :attr:`rate`.

Example::

    >>> # xdoctest: +IGNORE_WANT("non-deterministic")
    >>> m = Gamma(torch.tensor([1.0]), torch.tensor([1.0]))
    >>> m.sample()  # Gamma distributed with concentration=1 and rate=1
    tensor([ 0.1046])

Args:
    concentration (float or Tensor): shape parameter of the distribution
        (often referred to as alpha)
    rate (float or Tensor): rate parameter of the distribution
        (often referred to as beta), rate = 1 / scale
r   ÚrateTc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úreturnr   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚGamma.__annotate__.   s   ø€ ÷ .ñ .‘fñ .r   c                ó<   € V P                   V P                  ,          # r   ©r   r   ©Úselfs   &r   ÚmeanÚ
Gamma.mean-   s   € à×!Ñ! D§I¡IÕ-Ð-r   c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   r   2   s   ø€ ÷ Cñ C‘fñ Cr   c                ój   € V P                   ^,
          V P                  ,          P                  ^ R7      # )é   ©Úmin)r   r   Úclampr   s   &r   ÚmodeÚ
Gamma.mode1   s*   € à×#Ñ# aÕ'¨4¯9©9Õ4×;Ñ;ÀÐ;ÓBÐBr   c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   r   6   s   ø€ ÷ 5ñ 5™&ñ 5r   c                óZ   € V P                   V P                  P                  ^4      ,          # )r   )r   r   Úpowr   s   &r   ÚvarianceÚGamma.variance5   s    € à×!Ñ! D§I¡I§M¡M°!Ó$4Õ4Ð4r   c                ó^   <€ V ^8„  d   QhRS[ S[,          RS[ S[,          RS[R,          RR/# )r   r   r   Úvalidate_argsNr   )r   ÚfloatÚbool)r   r   s   "€r   r   r   9   sE   ø€ ÷ Cñ Cá¡•~ðCñ ‘unðCñ ˜d•{ð	Cð
 
ñCr   c                ó  <€ \        W4      w  V n        V n        \        V\        4      '       d-   \        V\        4      '       d   \
        P                  ! 4       pMV P                  P                  4       p\        SV `%  WCR 7       R# )©r0   N)
r   r   r   Ú
isinstancer   r   ÚSizeÚsizeÚsuperÚ__init__)r   r   r   r0   Úbatch_shapeÚ	__class__s   &&&& €r   r9   ÚGamma.__init__9   sa   ø€ ô )6°mÓ(JÑ%ˆÔ˜DœIÜm¤W×-Ò-´*¸TÄ7×2KÒ2KÜŸ*š*›,‰Kà×,Ñ,×1Ñ1Ó3ˆKÜ‰Ñ˜ÐÖBr   c                ó,  <€ V P                  \        V4      p\        P                  ! V4      pV P                  P                  V4      Vn        V P                  P                  V4      Vn        \        \        V`#  VR R7       V P                  Vn	        V# )Fr4   )
Ú_get_checked_instancer
   r   r6   r   Úexpandr   r8   r9   Ú_validate_args)r   r:   Ú	_instanceÚnewr;   s   &&& €r   r?   ÚGamma.expandF   sy   ø€ Ø×(Ñ(¬°	Ó:ˆÜ—j’j Ó-ˆØ ×.Ñ.×5Ñ5°kÓBˆÔØ—9‘9×#Ñ# KÓ0ˆŒÜŒeSÑ" ;¸eÐ"ÔDØ!×0Ñ0ˆÔØˆ
r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   Úsample_shaper   )r	   r   )r   r   s   "€r   r   r   O   s   ø€ ÷ ñ ¡Eð ¹Vñ r   c                ó@  € V P                  V4      p\        V P                  P                  V4      4      V P                  P                  V4      ,          pVP                  4       P                  \        P                  ! VP                  4      P                  R 7       V# )r%   )Ú_extended_shaper   r   r?   r   ÚdetachÚclamp_r   ÚfinfoÚdtypeÚtiny)r   rE   ÚshapeÚvalues   &&  r   ÚrsampleÚGamma.rsampleO   s   € Ø×$Ñ$ \Ó2ˆÜ × 2Ñ 2× 9Ñ 9¸%Ó @ÓAÀDÇIÁI×DTÑDTØóE
õ 
ˆð 	‰‹×ÑÜ—’˜EŸK™KÓ(×-Ñ-ð 	ô 	
ð ˆr   c                óò  € \         P                  ! WP                  P                  V P                  P                  R 7      pV P
                  '       d   V P                  V4       \         P                  ! V P                  V P                  4      \         P                  ! V P                  ^,
          V4      ,           V P                  V,          ,
          \         P                  ! V P                  4      ,
          # ))rK   Údevice)
r   Ú	as_tensorr   rK   rR   r@   Ú_validate_sampleÚxlogyr   Úlgamma©r   rN   s   &&r   Úlog_probÚGamma.log_probY   s£   € Ü—’ ¯Y©Y¯_©_ÀTÇYÁY×EUÑEUÔVˆØ××ÐØ×!Ñ! %Ô(äKŠK˜×*Ñ*¨D¯I©IÓ6ÜkŠk˜$×,Ñ,¨qÕ0°%Ó8õ9ài‰i˜%Õõ ô lŠl˜4×-Ñ-Ó.õ/ð	
r   c                ó(  € V P                   \        P                  ! V P                  4      ,
          \        P                  ! V P                   4      ,           R V P                   ,
          \        P
                  ! V P                   4      ,          ,           # )g      ð?)r   r   Úlogr   rV   Údigammar   s   &r   ÚentropyÚGamma.entropyd   sf   € à×ÑÜiŠi˜Ÿ	™	Ó"õ#älŠl˜4×-Ñ-Ó.õ/ð T×'Ñ'Õ'¬5¯=ª=¸×9KÑ9KÓ+LÕLõMð	
r   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r   )Útupler   )r   r   s   "€r   r   r   m   s   ø€ ÷ 4ñ 4¡¡v©v ~Õ!6ñ 4r   c                óB   € V P                   ^,
          V P                  ) 3# ©r$   r   r   s   &r   Ú_natural_paramsÚGamma._natural_paramsl   s   € à×"Ñ" QÕ&¨¯©¨
Ð3Ð3r   c                ó¬   € \         P                  ! V^,           4      V^,           \         P                  ! VP                  4       ) 4      ,          ,           # rb   )r   rV   r[   Ú
reciprocal)r   ÚxÚys   &&&r   Ú_log_normalizerÚGamma._log_normalizerq   s4   € Ü|Š|˜A EÓ" a¨!¥e¬u¯yªy¸!¿,¹,».¸Ó/IÕ%IÕIÐIr   c                ó¾   € V P                   '       d   V P                  V4       \        P                  P	                  V P
                  V P                  V,          4      # r   )r@   rT   r   ÚspecialÚgammaincr   r   rW   s   &&r   ÚcdfÚ	Gamma.cdft   sB   € Ø××ÐØ×!Ñ! %Ô(Ü}‰}×%Ñ% d×&8Ñ&8¸$¿)¹)ÀeÕ:KÓLÐLr   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   ÚpositiveÚarg_constraintsÚnonnegativeÚsupportÚhas_rsampleÚ_mean_carrier_measureÚpropertyr    r(   r-   r9   r?   r   r6   rO   rX   r]   rc   ri   rn   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r;   r   s   @@r   r
   r
      sÓ   ù‡ € ñð& 	˜×-Ñ-Ø×$Ñ$ð€Oð ×%Ñ%€GØ€KØÐà÷.ó ð.ð ÷Có ðCð ÷5ó ð5÷Cõ C÷ð -2¯JªJ«L÷ ò ò	
ò
ð ÷4ó ð4òJ÷Mò Mr   )r   r   Útorch.distributionsr   Útorch.distributions.exp_familyr   Útorch.distributions.utilsr   Útorch.typesr   r	   Ú__all__r   r
   © r   r   Ú<module>r…      s8   ðó Ý Ý +Ý <Ý 3ß &ð ˆ)€ò0ôeMÐö eMr   