+
    –°³jà  ã                   óŽ   € ^ RI t ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht R.tR	 t ! R
 R]4      t ! R R]	4      tR# )é    N©ÚTensor)ÚFunction)Úonce_differentiable)Úconstraints)ÚExponentialFamily)Ú_sizeÚ	Dirichletc                 ó¼   € VP                  RR4      P                  V4      p\        P                  ! WV4      pWBW,          P                  RR4      ,
          ,          # ©é   Téÿÿÿÿ)ÚsumÚ	expand_asÚtorchÚ_dirichlet_grad)ÚxÚconcentrationÚgrad_outputÚtotalÚgrads   &&&  Ú^/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/distributions/dirichlet.pyÚ_Dirichlet_backwardr      sN   € Ø×Ñ˜b $Ó'×1Ñ1°-Ó@€EÜ× Ò  °5Ó9€DØ !¥/×!6Ñ!6°r¸4Ó!@Õ@ÕAÐAó    c                   óJ   a € ] tR t^t o ]R 4       t]]R 4       4       tRtV t	R# )Ú
_Dirichletc                óT   € \         P                  ! V4      pV P                  W!4       V# ©N)r   Ú_sample_dirichletÚsave_for_backward)Úctxr   r   s   && r   ÚforwardÚ_Dirichlet.forward   s'   € ô ×#Ò# MÓ2ˆØ×Ñ˜aÔ/Øˆr   c                ó6   € V P                   w  r#\        W#V4      # r   )Úsaved_tensorsr   )r!   r   r   r   s   &&  r   ÚbackwardÚ_Dirichlet.backward   s   € ð ×,Ñ,ÑˆÜ" 1°[ÓAÐAr   © N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ústaticmethodr"   r   r&   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s5   ø‡ € Øñó ðð
 ØñBó ó öBr   r   c                   óH  a a€ ] tR t^&t oRtR]P                  ! ]P                  ^4      /t]P                  t
RtRV3R lV 3R llltRV 3R lltRV3R lR lltR	 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]V3R lR l4       tR tRtVtV ;t# )r
   a§  
Creates a Dirichlet distribution parameterized by concentration :attr:`concentration`.

Example::

    >>> # xdoctest: +IGNORE_WANT("non-deterministic")
    >>> m = Dirichlet(torch.tensor([0.5, 0.5]))
    >>> m.sample()  # Dirichlet distributed with concentration [0.5, 0.5]
    tensor([ 0.1046,  0.8954])

Args:
    concentration (Tensor): concentration parameter of the distribution
        (often referred to as alpha)
r   Tc                ó8   <€ V ^8„  d   QhRS[ RS[R,          RR/# )é   r   Úvalidate_argsNÚreturn)r   Úbool)Úformatr0   s   "€r   Ú__annotate__ÚDirichlet.__annotate__=   s2   ø€ ÷ Pñ PáðPñ ˜d•{ðPð 
ñ	Pr   c                ó°   <€ VP                  4       ^8  d   \        R4      hWn        VP                  RR VP                  RR rC\        SV `  W4VR7       R# )r   z;`concentration` parameter must be at least one-dimensional.N©r4   r   )ÚdimÚ
ValueErrorr   ÚshapeÚsuperÚ__init__)Úselfr   r4   Úbatch_shapeÚevent_shapeÚ	__class__s   &&&  €r   r@   ÚDirichlet.__init__=   sc   ø€ ð
 ×ÑÓ Ô"ÜØMóð ð +ÔØ#0×#6Ñ#6°s¸Ð#;¸]×=PÑ=PÐQSÐQTÐ=U�[ä‰Ñ˜ÀÐÖOr   c                ó   <€ V P                  \        V4      p\        P                  ! V4      pV P                  P                  WP                  ,           4      Vn        \        \        V`#  WP                  R R7       V P                  Vn	        V# )Fr;   )
Ú_get_checked_instancer
   r   ÚSizer   ÚexpandrC   r?   r@   Ú_validate_args)rA   rB   Ú	_instanceÚnewrD   s   &&& €r   rI   ÚDirichlet.expandK   sy   ø€ Ø×(Ñ(¬°IÓ>ˆÜ—j’j Ó-ˆØ ×.Ñ.×5Ñ5°k×DTÑDTÕ6TÓUˆÔÜŒi˜Ñ&Ø×)Ñ)¸ð 	'ô 	
ð "×0Ñ0ˆÔØˆ
r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r3   Úsample_shaper5   )r	   r   )r7   r0   s   "€r   r8   r9   U   s   ø€ ÷ /ñ /¡Eð /±6ñ /r   c                ó„   € V P                  V4      pV P                  P                  V4      p\        P	                  V4      # r   )Ú_extended_shaper   rI   r   Úapply)rA   rO   r>   r   s   &&  r   ÚrsampleÚDirichlet.rsampleU   s9   € Ø×$Ñ$ \Ó2ˆØ×*Ñ*×1Ñ1°%Ó8ˆÜ×Ñ Ó.Ð.r   c                ó†  € V P                   '       d   V P                  V4       \        P                  ! V P                  R ,
          V4      P                  R4      \        P                  ! V P                  P                  R4      4      ,           \        P                  ! V P                  4      P                  R4      ,
          # )ç      ð?r   )rJ   Ú_validate_sampler   Úxlogyr   r   Úlgamma)rA   Úvalues   &&r   Úlog_probÚDirichlet.log_probZ   s‰   € Ø××ÐØ×!Ñ! %Ô(ä�KŠK˜×*Ñ*¨SÕ0°%Ó8×<Ñ<¸RÓ@Ü�lŠl˜4×-Ñ-×1Ñ1°"Ó5Ó6õ7ä�lŠl˜4×-Ñ-Ó.×2Ñ2°2Ó6õ7ð	
r   c                ó    <€ V ^8„  d   QhRS[ /# ©r3   r5   r   )r7   r0   s   "€r   r8   r9   d   s   ø€ ÷ Eñ E‘fñ Er   c                ó\   € V P                   V P                   P                  RR4      ,          # r   )r   r   ©rA   s   &r   ÚmeanÚDirichlet.meanc   s&   € à×!Ñ! D×$6Ñ$6×$:Ñ$:¸2¸tÓ$DÕDÐDr   c                ó    <€ V ^8„  d   QhRS[ /# r^   r   )r7   r0   s   "€r   r8   r9   h   s   ø€ ÷ ñ ‘fñ r   c                ó~  € V P                   ^,
          P                  RR7      pWP                  RR4      ,          pV P                   ^8  P                  RR7      p\        P
                  P                  P                  W#,          P                  RR7      VP                  R,          4      P                  V4      W#&   V# )r   g        )ÚminT)r<   r   )r   Úclampr   Úallr   ÚnnÚ
functionalÚone_hotÚargmaxr>   Úto)rA   Úconcentrationm1ÚmodeÚmasks   &   r   rn   ÚDirichlet.modeg   s¢   € à×-Ñ-°Õ1×8Ñ8¸SÐ8ÓAˆØ×!4Ñ!4°R¸Ó!>Õ>ˆØ×"Ñ" QÑ&×+Ñ+°Ð+Ó3ˆÜ—X‘X×(Ñ(×0Ñ0Ø�J×Ñ "ÐÓ% ×'<Ñ'<¸RÕ'@ó
ç
‰"ˆT‹(ð 	‰
ð ˆr   c                ó    <€ V ^8„  d   QhRS[ /# r^   r   )r7   r0   s   "€r   r8   r9   r   s   ø€ ÷ 
ñ 
™&ñ 
r   c                óÈ   € V P                   P                  RR4      pV P                   WP                   ,
          ,          VP                  ^4      V^,           ,          ,          # r   )r   r   Úpow)rA   Úcon0s   & r   ÚvarianceÚDirichlet.varianceq   sR   € à×!Ñ!×%Ñ% b¨$Ó/ˆà×ÑØ×(Ñ(Õ(õ*à�x‰x˜‹{˜d Q�hÕ'õ)ð	
r   c                óê  € V P                   P                  R4      pV P                   P                  R4      p\        P                  ! V P                   4      P                  R4      \        P                  ! V4      ,
          W,
          \        P
                  ! V4      ,          ,
          V P                   R,
          \        P
                  ! V P                   4      ,          P                  R4      ,
          # )r   rV   r   )r   Úsizer   r   rY   Údigamma)rA   ÚkÚa0s   &  r   ÚentropyÚDirichlet.entropyz   s¯   € Ø×Ñ×#Ñ# BÓ'ˆØ×Ñ×#Ñ# BÓ'ˆä�LŠL˜×+Ñ+Ó,×0Ñ0°Ó4Ü�lŠl˜2Óõà�vœŸš rÓ*Õ*õ+ð ×"Ñ" SÕ(¬E¯MªM¸$×:LÑ:LÓ,MÕM×RÑRÐSUÓVõWð	
r   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r^   )Útupler   )r7   r0   s   "€r   r8   r9   …   s   ø€ ÷ %ñ %¡¡v¥ñ %r   c                ó   € V P                   3# r   ©r   r`   s   &r   Ú_natural_paramsÚDirichlet._natural_params„   s   € à×"Ñ"Ð$Ð$r   c                ó”   € VP                  4       P                  R4      \        P                   ! VP                  R4      4      ,
          # )r   r   )rY   r   r   )rA   r   s   &&r   Ú_log_normalizerÚDirichlet._log_normalizer‰   s-   € Ø�x‰x‹z�~‰~˜bÓ!¤E§L¢L°·±°r³Ó$;Õ;Ð;r   r�   r   )r(   )r)   r*   r+   r,   Ú__doc__r   ÚindependentÚpositiveÚarg_constraintsÚsimplexÚsupportÚhas_rsampler@   rI   rS   r[   Úpropertyra   rn   ru   r|   r‚   r…   r.   r/   Ú__classcell__)rD   r0   s   @@r   r
   r
   &   s¾   ù‡ € ñð" 	˜×0Ò0°×1EÑ1EÀqÓIð€Oð ×!Ñ!€GØ€K÷Põ P÷÷/ò /ò

ð ÷Eó ðEð ÷ó ðð ÷
ó ð
ò
ð ÷%ó ð%÷<ò <r   )r   r   Útorch.autogradr   Útorch.autograd.functionr   Útorch.distributionsr   Útorch.distributions.exp_familyr   Útorch.typesr	   Ú__all__r   r   r
   r(   r   r   Ú<module>r–      sH   ðó Ý Ý #Ý 7Ý +Ý <Ý ð ˆ-€òBôB�ô Bô d<Ð!ö d<r   