+
    –°³jc	  ã                   ó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©ÚNormal)ÚTransformedDistribution)ÚAbsTransformÚ
HalfNormalc                   ó"  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-normal distribution parameterized by `scale` where::

    X ~ Normal(0, scale)
    Y = |X| ~ HalfNormal(scale)

Example::

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

Args:
    scale (float or Tensor): scale of the full Normal 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_normal.pyÚ__annotate__ÚHalfNormal.__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   ÚHalfNormal.__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#   ÚHalfNormal.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   ÚHalfNormal.scale4   s   € à�~‰~×#Ñ#Ð#r   c                ó    <€ V ^8„  d   QhRS[ /# r(   r)   )r   r   s   "€r   r   r   9   s   ø€ ÷ 3ñ 3‘fñ 3r   c                óz   € V P                   \        P                  ! ^\        P                  ,          4      ,          # ©r   )r   ÚmathÚsqrtÚpir,   s   &r   ÚmeanÚHalfNormal.mean8   s"   € à�z‰zœDŸIšI a¬$¯'©'¥kÓ2Õ2Ð2r   c                ó    <€ V ^8„  d   QhRS[ /# r(   r)   )r   r   s   "€r   r   r   =   s   ø€ ÷ ,ñ ,‘fñ ,r   c                óB   € \         P                  ! V P                  4      # r+   )ÚtorchÚ
zeros_liker   r,   s   &r   ÚmodeÚHalfNormal.mode<   s   € ä×Ò §
¡
Ó+Ð+r   c                ó    <€ V ^8„  d   QhRS[ /# r(   r)   )r   r   s   "€r   r   r   A   s   ø€ ÷ 5ñ 5™&ñ 5r   c                ó~   € V P                   P                  ^4      ^^\        P                  ,          ,
          ,          # r0   )r   Úpowr1   r3   r,   s   &r   ÚvarianceÚHalfNormal.variance@   s&   € à�z‰z�~‰~˜aÓ  A¨¬D¯G©G­¥OÕ4Ð4r   c                óø   € V P                   '       d   V P                  V4       V P                  P                  V4      \        P
                  ! ^4      ,           p\        P                  ! V^ 8¬  V\        ) 4      pV# r0   )	Ú_validate_argsÚ_validate_sampler   Úlog_probr1   Úlogr8   Úwherer   )r   ÚvaluerD   s   && r   rD   ÚHalfNormal.log_probD   sZ   € Ø××ÐØ×!Ñ! %Ô(Ø—>‘>×*Ñ*¨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      ,          ^,
          # r0   )rB   rC   r   Úcdf)r   rG   s   &&r   rJ   ÚHalfNormal.cdfK   s;   € Ø××ÐØ×!Ñ! %Ô(Ø�4—>‘>×%Ñ% eÓ,Õ,¨qÕ0Ð0r   c                óT   € V P                   P                  V^,           ^,          4      # )é   )r   Úicdf)r   Úprobs   &&r   rN   ÚHalfNormal.icdfP   s   € Ø�~‰~×"Ñ" D¨1¥H°¥>Ó2Ð2r   c                ól   € V P                   P                  4       \        P                  ! ^4      ,
          # r0   )r   Úentropyr1   rE   r,   s   &r   rR   ÚHalfNormal.entropyS   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   r4   r:   r?   rD   rJ   rN   rR   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   r   s   @@r   r
   r
      s©   ù‡ € ñð"  × 4Ñ 4Ð5€Oà×%Ñ%€GØ€K÷Qõ Q÷:ð ÷$ó ð$ð ÷3ó ð3ð ÷,ó ð,ð ÷5ó ð5òò1ò
3ò6÷I … r   )r1   r8   r   r   Útorch.distributionsr   Útorch.distributions.normalr   Ú,torch.distributions.transformed_distributionr   Útorch.distributions.transformsr	   Ú__all__r
   rU   r   r   Ú<module>rj      s2   ðã ã ß Ý +Ý -Ý PÝ 7ð ˆ.€ôE6Ð(ö E6r   