+
    –°³jN
  ã                   ór   € ^ RI t ^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht R.t ! R R]	4      tR# )	é    N)ÚinfÚTensor)Úconstraints©ÚCauchy)ÚTransformedDistribution)ÚAbsTransformÚ
HalfCauchyc                   ó"  a a€ ] tR t^t oRt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]V3R lR l4       tR tR tR tR tV3R ltRtVtV ;t# )r
   aˆ  
Creates a half-Cauchy distribution parameterized by `scale` where::

    X ~ Cauchy(0, scale)
    Y = |X| ~ HalfCauchy(scale)

Example::

    >>> # xdoctest: +IGNORE_WANT("non-deterministic")
    >>> m = HalfCauchy(torch.tensor([1.0]))
    >>> m.sample()  # half-cauchy distributed with scale=1
    tensor([ 2.3214])

Args:
    scale (float or Tensor): scale of the full Cauchy distribution
ÚscaleTc                óH   <€ V ^8„  d   QhRS[ S[,          RS[R,          RR/# )é   r   Úvalidate_argsNÚreturn)r   ÚfloatÚbool)ÚformatÚ__classdict__s   "€Ú`/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/distributions/half_cauchy.pyÚ__annotate__ÚHalfCauchy.__annotate__(   s6   ø€ ÷ Qñ Qá™�~ðQñ ˜d•{ðQð 
ñ	Qó    c                óX   <€ \        ^ VRR7      p\        SV `	  V\        4       VR7       R# )r   F)r   N)r   ÚsuperÚ__init__r	   )Úselfr   r   Ú	base_distÚ	__class__s   &&& €r   r   ÚHalfCauchy.__init__(   s)   ø€ ô
 ˜1˜e°5Ô9ˆ	Ü‰Ñ˜¤L£NÀ-ÐÖPr   c                óP   <€ V P                  \        V4      p\        SV `  WR 7      # ))Ú	_instance)Ú_get_checked_instancer
   r   Úexpand)r   Úbatch_shaper!   Únewr   s   &&& €r   r#   ÚHalfCauchy.expand0   s&   ø€ Ø×(Ñ(¬°YÓ?ˆÜ‰w‰~˜kˆ~Ó9Ð9r   c                ó    <€ V ^8„  d   QhRS[ /# ©r   r   ©r   )r   r   s   "€r   r   r   5   s   ø€ ÷ $ñ $‘vñ $r   c                ó.   € V P                   P                  # ©N)r   r   ©r   s   &r   r   ÚHalfCauchy.scale4   s   € à�~‰~×#Ñ#Ð#r   c                ó    <€ V ^8„  d   QhRS[ /# r(   r)   )r   r   s   "€r   r   r   9   s   ø€ ÷ 
ñ 
‘fñ 
r   c                ó¾   € \         P                  ! V P                  4       \        P                  V P
                  P                  V P
                  P                  R 7      # ©)ÚdtypeÚdevice)ÚtorchÚfullÚ_extended_shapeÚmathr   r   r1   r2   r,   s   &r   ÚmeanÚHalfCauchy.mean8   s@   € ä�zŠzØ× Ñ Ó"Ü�H‰HØ—*‘*×"Ñ"Ø—:‘:×$Ñ$ô	
ð 	
r   c                ó    <€ V ^8„  d   QhRS[ /# r(   r)   )r   r   s   "€r   r   r   B   s   ø€ ÷ ,ñ ,‘fñ ,r   c                óB   € \         P                  ! V P                  4      # r+   )r3   Ú
zeros_liker   r,   s   &r   ÚmodeÚHalfCauchy.modeA   s   € ä×Ò §
¡
Ó+Ð+r   c                ó    <€ V ^8„  d   QhRS[ /# r(   r)   )r   r   s   "€r   r   r   F   s   ø€ ÷ 'ñ '™&ñ 'r   c                ó.   € V P                   P                  # r+   )r   Úvariancer,   s   &r   r@   ÚHalfCauchy.varianceE   s   € à�~‰~×&Ñ&Ð&r   c                ó   € V P                   '       d   V P                  V4       \        P                  ! WP                  P
                  P                  V P                  P
                  P                  R 7      pV P                  P                  V4      \        P                  ! ^4      ,           p\        P                  ! V^ 8¬  V\        ) 4      pV# r0   )Ú_validate_argsÚ_validate_sampler3   Ú	as_tensorr   r   r1   r2   Úlog_probr6   ÚlogÚwherer   )r   ÚvaluerF   s   && r   rF   ÚHalfCauchy.log_probI   s�   € Ø××ÐØ×!Ñ! %Ô(Ü—’ØŸ™×-Ñ-×3Ñ3¸D¿N¹N×<PÑ<P×<WÑ<Wô
ˆð —>‘>×*Ñ*¨5Ó1´D·H²H¸Q³KÕ?ˆÜ—;’;˜u¨™z¨8´c°TÓ:ˆØˆr   c                óš   € V P                   '       d   V P                  V4       ^V P                  P                  V4      ,          ^,
          # ©r   )rC   rD   r   Úcdf)r   rI   s   &&r   rM   ÚHalfCauchy.cdfS   s;   € Ø××ÐØ×!Ñ! %Ô(Ø�4—>‘>×%Ñ% eÓ,Õ,¨qÕ0Ð0r   c                óT   € V P                   P                  V^,           ^,          4      # )é   )r   Úicdf)r   Úprobs   &&r   rQ   ÚHalfCauchy.icdfX   s   € Ø�~‰~×"Ñ" D¨1¥H°¥>Ó2Ð2r   c                ól   € V P                   P                  4       \        P                  ! ^4      ,
          # rL   )r   Úentropyr6   rG   r,   s   &r   rU   ÚHalfCauchy.entropy[   s"   € Ø�~‰~×%Ñ%Ó'¬$¯(ª(°1«+Õ5Ð5r   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r   r   r   )r   r   s   "€r   r   r      s   ø‡ ‚ ñ. Ñò/ r   © r+   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   ÚpositiveÚarg_constraintsÚnonnegativeÚsupportÚhas_rsampler   r#   Úpropertyr   r7   r<   r@   rF   rM   rQ   rU   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   r   s   @@r   r
   r
      s©   ù‡ € ñð"  × 4Ñ 4Ð5€Oà×%Ñ%€GØ€K÷Qõ Q÷:ð ÷$ó ð$ð ÷
ó ð
ð ÷,ó ð,ð ÷'ó ð'òò1ò
3ò6÷Y … r   )r6   r3   r   r   Útorch.distributionsr   Útorch.distributions.cauchyr   Ú,torch.distributions.transformed_distributionr   Útorch.distributions.transformsr	   Ú__all__r
   rX   r   r   Ú<module>rm      s2   ðã ã ß Ý +Ý -Ý PÝ 7ð ˆ.€ôM6Ð(ö M6r   