+
    –°³j�1  ã                   ól   € ^ RI t ^ RIHt ^ RI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)Ú
deprecated©ÚTensor)Úconstraints)Úlazy_property©Ú_sizeÚDistributionc                   ó  a a€ ] tR t^t oRtRtRtRt]V3R lR l4       t	]
P                  ! 4       ]
P                  ! 4       R3V3R lV 3R llltR7V3R	 l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]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]
P                  ! 4       3V3R lR llt]
P                  ! 4       3V3R lR llt]! R]R 7      V3R! lR" l4       tV3R# lR$ ltV3R% lR& ltV3R' lR( ltR8V3R) lR* lltV3R+ lR, lt V3R- lR. lt!]
P                  ! 4       3V3R/ lR0 llt"V3R1 lR2 lt#R7R3 lt$V3R4 lR5 lt%R6t&Vt'V ;t(# )9r
   a;  
Distribution is the abstract base class for probability distributions.

Args:
    batch_shape (torch.Size): The shape over which parameters are batched.
    event_shape (torch.Size): The shape of a single sample (without batching).
    validate_args (bool, optional): Whether to validate arguments. Default: None.
FTc                ó$   <€ V ^8„  d   QhRS[ RR/# ©é   ÚvalueÚreturnN)Úbool)ÚformatÚ__classdict__s   "€Úa/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/distributions/distribution.pyÚ__annotate__ÚDistribution.__annotate__   s   ø€ ÷ ,ñ ,©ð ,°$ñ ,ó    c                ó6   € V R9  d   \         hV \        n        R# )a]  
Sets whether validation is enabled or disabled.

The default behavior mimics Python's ``assert`` statement: validation
is on by default, but is disabled if Python is run in optimized mode
(via ``python -O``). Validation may be expensive, so you may want to
disable it once a model is working.

Args:
    value (bool): Whether to enable validation.
N)TF)Ú
ValueErrorr
   Ú_validate_args)r   s   &r   Úset_default_validate_argsÚ&Distribution.set_default_validate_args   s   € ð ˜Ô%ÜÐØ&+ŒÖ#r   Nc                óf   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[R,          RR/# )r   Úbatch_shapeÚevent_shapeÚvalidate_argsNr   )ÚtorchÚSizer   )r   r   s   "€r   r   r   .   s?   ø€ ÷ &ñ &á—Z‘Zð&ñ —Z‘Zð&ñ ˜d•{ð	&ð
 
ñ&r   c                ó  <€ Wn         W n        Ve   W0n        V P                  '       Ed    V P                  pVP                  4        Fë  w  rV\        P                  ! V4      '       d   K#  WPP                  9  d,   \        \        \        V 4      V4      \        4      '       d   K^  \        W4      pVP!                  V4      p\"        P$                  ! V4      '       d   K˜  \'        RV R\        V4      P(                   R\+        VP,                  4       R\/        V 4       R	\/        V4       R
V 24      h	  \0        S	V `e  4        R #   \         d:    / p\
        P                  ! T P                   R2R,           R,           ^R7        ELRi ; i)Nz$ does not define `arg_constraints`. zAPlease set `arg_constraints = {}` or initialize the distribution z2with `validate_args=False` to turn off validation.©Ú
stacklevelzExpected parameter z (ú
 of shape z) of distribution z to satisfy the constraint ú, but found invalid values:
)Ú_batch_shapeÚ_event_shaper   Úarg_constraintsÚNotImplementedErrorÚwarningsÚwarnÚ	__class__Úitemsr   Úis_dependentÚ__dict__Ú
isinstanceÚgetattrÚtyper   Úcheckr!   Ú_is_all_truer   Ú__name__ÚtupleÚshapeÚreprÚsuperÚ__init__)
Úselfr   r   r    r*   ÚparamÚ
constraintr   Úvalidr.   s
   &&&&     €r   r<   ÚDistribution.__init__.   s~  ø€ ð (ÔØ'ÔØÒ$Ø"/ÔØ××Ñð	Ø"&×"6Ñ"6�ð &5×%:Ñ%:Ö%<Ñ!�Ü×+Ò+¨J×7Ò7ÙØ§¡Ô-´*ÜœD ›J¨Ó.´÷3ò 3ñ Ü Ó,�Ø"×(Ñ(¨Ó/�Ü×)Ò)¨%×0Ô0Ü$Ø-¨e¨Wð 5Ü  ›K×0Ñ0Ð1°¼EÀ%Ç+Á+Ó<NÐ;Oð P+Ü+/°«:¨,ð 75Ü59¸*Ó5EÐ4Fð G6Ø6;°Wð	>óð ñ &=ô" 	‰ÑÖøô3 'ô Ø"$�Ü—’Ø—~‘~Ð&Ð&JÐKØYõZàJõKð  !÷	ð ðús   ¬E ÅA FÆ
Fc                ó    <€ V ^8„  d   QhRS[ /# )r   r   r   )r   r   s   "€r   r   r   V   s   ø€ ÷ "ñ "¡%ñ "r   c                ó   € \         h)a¸  
Returns a new distribution instance (or populates an existing instance
provided by a derived class) with batch dimensions expanded to
`batch_shape`. This method calls :class:`~torch.Tensor.expand` on
the distribution's parameters. As such, this does not allocate new
memory for the expanded distribution instance. Additionally,
this does not repeat any args checking or parameter broadcasting in
`__init__.py`, when an instance is first created.

Args:
    batch_shape (torch.Size): the desired expanded size.
    _instance: new instance provided by subclasses that
        need to override `.expand`.

Returns:
    New distribution instance with batch dimensions expanded to
    `batch_shape`.
©r+   )r=   r   Ú	_instances   &&&r   ÚexpandÚDistribution.expandV   s
   € ô& "Ð!r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   r   ©r!   r"   )r   r   s   "€r   r   r   l   ó   ø€ ÷ !ñ !™UŸZ™Zñ !r   c                ó   € V P                   # )z6
Returns the shape over which parameters are batched.
)r(   ©r=   s   &r   r   ÚDistribution.batch_shapek   ó   € ð
 × Ñ Ð r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rI   rJ   )r   r   s   "€r   r   r   s   rK   r   c                ó   € V P                   # )z:
Returns the shape of a single sample (without batching).
)r)   rM   s   &r   r   ÚDistribution.event_shaper   rO   r   c                óJ   <€ V ^8„  d   QhRS[ S[S[P                  3,          /# rI   )ÚdictÚstrr   Ú
Constraint)r   r   s   "€r   r   r   z   s$   ø€ ÷ "ñ "¡¡c©;×+AÑ+AÐ&AÕ!Bñ "r   c                ó   € \         h)zâ
Returns a dictionary from argument names to
:class:`~torch.distributions.constraints.Constraint` objects that
should be satisfied by each argument of this distribution. Args that
are not tensors need not appear in this dict.
rD   rM   s   &r   r*   ÚDistribution.arg_constraintsy   ó
   € ô "Ð!r   c                óB   <€ V ^8„  d   QhRS[ P                  R,          /# )r   r   N)r   rV   )r   r   s   "€r   r   r   „   s   ø€ ÷ "ñ "™×/Ñ/°$Õ6ñ "r   c                ó   € \         h)zq
Returns a :class:`~torch.distributions.constraints.Constraint` object
representing this distribution's support.
rD   rM   s   &r   ÚsupportÚDistribution.supportƒ   ó
   € ô "Ð!r   c                ó    <€ V ^8„  d   QhRS[ /# rI   r   )r   r   s   "€r   r   r   Œ   s   ø€ ÷ "ñ "‘fñ "r   c                ó   € \         h)z'
Returns the mean of the distribution.
rD   rM   s   &r   ÚmeanÚDistribution.mean‹   ó
   € ô
 "Ð!r   c                ó    <€ V ^8„  d   QhRS[ /# rI   r   )r   r   s   "€r   r   r   “   s   ø€ ÷ Oñ O‘fñ Or   c                ó2   € \        V P                   R24      h)z'
Returns the mode of the distribution.
z does not implement mode)r+   r.   rM   s   &r   ÚmodeÚDistribution.mode’   s   € ô
 " T§^¡^Ð$4Ð4LÐ"MÓNÐNr   c                ó    <€ V ^8„  d   QhRS[ /# rI   r   )r   r   s   "€r   r   r   š   s   ø€ ÷ "ñ "™&ñ "r   c                ó   € \         h)z+
Returns the variance of the distribution.
rD   rM   s   &r   ÚvarianceÚDistribution.variance™   rc   r   c                ó    <€ V ^8„  d   QhRS[ /# rI   r   )r   r   s   "€r   r   r   ¡   s   ø€ ÷ $ñ $™ñ $r   c                ó6   € V P                   P                  4       # )z5
Returns the standard deviation of the distribution.
)rj   ÚsqrtrM   s   &r   ÚstddevÚDistribution.stddev    s   € ð
 �}‰}×!Ñ!Ó#Ð#r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r   Úsample_shaper   ©r	   r   )r   r   s   "€r   r   r   §   s   ø€ ÷ .ñ .¡5ð .¹Fñ .r   c                óœ   € \         P                  ! 4       ;_uu_ 4        V P                  V4      uuRRR4       #   + '       g   i     R# ; i)z|
Generates a sample_shape shaped sample or sample_shape shaped batch of
samples if the distribution parameters are batched.
N)r!   Úno_gradÚrsample©r=   rs   s   &&r   ÚsampleÚDistribution.sample§   s'   € ô
 �]Š]�_�_Ø—<‘< Ó-÷ �_�_‹_ús	   ž:ºA	c                ó&   <€ V ^8„  d   QhRS[ RS[/# rr   rt   )r   r   s   "€r   r   r   ¯   s   ø€ ÷ "ñ "¡Eð "¹Vñ "r   c                ó   € \         h)zœ
Generates a sample_shape shaped reparameterized sample or sample_shape
shaped batch of reparameterized samples if the distribution parameters
are batched.
rD   rx   s   &&r   rw   ÚDistribution.rsample¯   r^   r   z=`sample_n(n)` will be deprecated. Use `sample((n,))` instead.)Úcategoryc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   Únr   )Úintr   )r   r   s   "€r   r   r   »   s   ø€ ÷ -ñ -™#ð -¡&ñ -r   c                óN   € V P                  \        P                  ! V34      4      # )zY
Generates n samples or n batches of samples if the distribution
parameters are batched.
)ry   r!   r"   )r=   r€   s   &&r   Úsample_nÚDistribution.sample_n·   s   € ð �{‰{œ5Ÿ:š: q dÓ+Ó,Ð,r   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©r   r   r   r   )r   r   s   "€r   r   r   Â   s   ø€ ÷ "ñ "™fð "©ñ "r   c                ó   € \         h)zk
Returns the log of the probability density/mass function evaluated at
`value`.

Args:
    value (Tensor):
rD   ©r=   r   s   &&r   Úlog_probÚDistribution.log_probÂ   rY   r   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# r†   r   )r   r   s   "€r   r   r   Ì   s   ø€ ÷ "ñ "™ð "¡Fñ "r   c                ó   € \         h)z_
Returns the cumulative density/mass function evaluated at
`value`.

Args:
    value (Tensor):
rD   rˆ   s   &&r   ÚcdfÚDistribution.cdfÌ   rY   r   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# r†   r   )r   r   s   "€r   r   r   Ö   s   ø€ ÷ "ñ "™&ð "¡Vñ "r   c                ó   € \         h)zg
Returns the inverse cumulative density/mass function evaluated at
`value`.

Args:
    value (Tensor):
rD   rˆ   s   &&r   ÚicdfÚDistribution.icdfÖ   rY   r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   rF   r   )r   r   )r   r   s   "€r   r   r   à   s   ø€ ÷ "ñ "©ð "¹ñ "r   c                ó   € \         h)aò  
Returns tensor containing all values supported by a discrete
distribution. The result will enumerate over dimension 0, so the shape
of the result will be `(cardinality,) + batch_shape + event_shape`
(where `event_shape = ()` for univariate distributions).

Note that this enumerates over all batched tensors in lock-step
`[[0, 0], [1, 1], ...]`. With `expand=False`, enumeration happens
along dim 0, but with the remaining batch dimensions being
singleton dimensions, `[[0], [1], ..`.

To iterate over the full Cartesian product use
`itertools.product(m.enumerate_support())`.

Args:
    expand (bool): whether to expand the support over the
        batch dims to match the distribution's `batch_shape`.

Returns:
    Tensor iterating over dimension 0.
rD   )r=   rF   s   &&r   Úenumerate_supportÚDistribution.enumerate_supportà   s
   € ô, "Ð!r   c                ó    <€ V ^8„  d   QhRS[ /# rI   r   )r   r   s   "€r   r   r   ø   s   ø€ ÷ "ñ "™ñ "r   c                ó   € \         h)zg
Returns entropy of distribution, batched over batch_shape.

Returns:
    Tensor of shape batch_shape.
rD   rM   s   &r   ÚentropyÚDistribution.entropyø   s
   € ô "Ð!r   c                ó    <€ V ^8„  d   QhRS[ /# rI   r   )r   r   s   "€r   r   r     s   ø€ ÷ )ñ )™Fñ )r   c                óJ   € \         P                  ! V P                  4       4      # )zj
Returns perplexity of distribution, batched over batch_shape.

Returns:
    Tensor of shape batch_shape.
)r!   Úexpr™   rM   s   &r   Ú
perplexityÚDistribution.perplexity  s   € ô �yŠy˜Ÿ™›Ó(Ð(r   c                ó:   <€ V ^8„  d   QhRS[ RS[P                  /# rr   )r	   r!   r"   )r   r   s   "€r   r   r   
  s#   ø€ ÷ Pñ P©Eð PÁUÇZÁZñ Pr   c                óÜ   € \        V\        P                  4      '       g   \        P                  ! V4      p\        P                  ! WP                  ,           V P                  ,           4      # )a@  
Returns the size of the sample returned by the distribution, given
a `sample_shape`. Note, that the batch and event shapes of a distribution
instance are fixed at the time of construction. If this is empty, the
returned shape is upcast to (1,).

Args:
    sample_shape (torch.Size): the size of the sample to be drawn.
)r2   r!   r"   r(   r)   rx   s   &&r   Ú_extended_shapeÚDistribution._extended_shape
  sF   € ô ˜,¬¯
©
×3Ò3Ü Ÿ:š: lÓ3ˆLÜ�zŠz˜,×):Ñ):Õ:¸T×=NÑ=NÕNÓOÐOr   c                ó$   <€ V ^8„  d   QhRS[ RR/# r   r   )r   r   s   "€r   r   r     s   ø€ ÷ 2ñ 2¡fð 2°ñ 2r   c                ó  € \        V\        P                  4      '       g   \        R4      h\	        VP                  4       4      \	        V P                  4      ,
          pVP                  4       VR V P                  8w  d+   \        RVP                  4        RV P                   R24      hVP                  4       pV P                  V P                  ,           p\        \        V4      \        V4      4       F/  w  rVV^8w  g   K  V^8w  g   K  WV8w  g   K  \        RV RV R24      h	   V P                  pTf   \        R4      hTP!                  T4      p\        P"                  ! T4      '       gS   \        R\%        T4      P&                   R\)        TP*                  4       R\-        T4       R\-        T 4       RT 2
4      hR#   \         d8    \        P                  ! T P                   R2R,           R	,           ^R
7        R# i ; i)aÂ  
Argument validation for distribution methods such as `log_prob`,
`cdf` and `icdf`. The rightmost dimensions of a value to be
scored via these methods must agree with the distribution's batch
and event shapes.

Args:
    value (Tensor): the tensor whose log probability is to be
        computed by the `log_prob` method.
Raises
    ValueError: when the rightmost dimensions of `value` do not match the
        distribution's batch and event shapes.
z/The value argument to log_prob must be a TensorNz5The right-most size of value must match event_shape: z vs Ú.z9Value is not broadcastable with batch_shape+event_shape: z% does not define `support` to enable z;sample validation. Please initialize the distribution with z-`validate_args=False` to turn off validation.r$   zsupport is unexpectedly NonezExpected value argument (r&   z) to be within the support (z) of the distribution r'   )r2   r!   r   r   ÚlenÚsizer)   r(   ÚzipÚreversedr\   r+   r,   r-   r.   ÚAssertionErrorr5   r6   r4   r7   r8   r9   r:   )	r=   r   Úevent_dim_startÚactual_shapeÚexpected_shapeÚiÚjr\   r@   s	   &&       r   Ú_validate_sampleÚDistribution._validate_sample  sî  € ô ˜%¤§¡×.Ò.ÜÐNÓOÐOä˜eŸj™j›lÓ+¬c°$×2CÑ2CÓ.DÕDˆØ�:‰:‹<˜Ð(Ð)¨T×->Ñ->Ô>ÜØGÈÏ
É
ËÀ~ÐUYÐZ^×ZkÑZkÐYlÐlmÐnóð ð —z‘z“|ˆØ×*Ñ*¨T×->Ñ->Õ>ˆÜœ Ó.´¸Ó0HÖI‰DˆAØ�AŽv˜!˜qž& Q¦VÜ ØOÐP\È~Ð]aÐbpÐaqÐqrÐsóð ñ Jð
		Ø—l‘lˆGð Š?Ü Ð!?Ó@Ð@Ø—‘˜eÓ$ˆÜ×!Ò! %×(Ò(ÜðÜ˜“K×(Ñ(Ð)¨´E¸%¿+¹+Ó4FÐ3Gð H-Ü-1°'«]¨Oð <'Ü'+¨D£z lð 3.Ø.3¨Wð	6óð ñ )øô #ô 	Ü�MŠMØ—>‘>Ð"Ð"GÐHØOõPàAõBð õ	ò ð	ús   Ä*G Ç>HÈHc                óò   € VfU   \        V 4      P                  VP                  8w  d1   \        RV P                  P                   RVP                   R24      hVf   V P                  \        V 4      4      # T# )Nz	Subclass z of zR that defines a custom __init__ method must also define a custom .expand() method.)r4   r<   r+   r.   r7   Ú__new__)r=   ÚclsrE   s   &&&r   Ú_get_checked_instanceÚ"Distribution._get_checked_instanceL  sp   € ØÒ¤ d£×!4Ñ!4¸¿¹Ô!DÜ%Ø˜DŸN™N×3Ñ3Ð4°D¸¿¹¸ð G>ð >óð ð ,5Ò+<ˆt�|‰|œD ›JÓ'ÐKÀ)ÐKr   c                ó    <€ V ^8„  d   QhRS[ /# rI   )rU   )r   r   s   "€r   r   r   T  s   ø€ ÷ Añ A™#ñ Ar   c           	     óÂ  € V P                    Uu. uF  qV P                  9   g   K  VNK  	  ppR P                  V Uu. uFb  pT RV P                  V,          P                  4       ^8X  d   V P                  V,          M V P                  V,          P	                  4        2NKd  	  up4      pV P
                  P                  R,           V,           R,           # u upi u upi )z, z: Ú(Ú))r*   r1   ÚjoinÚnumelr¨   r.   r7   )r=   ÚkÚparam_namesÚpÚargs_strings   &    r   Ú__repr__ÚDistribution.__repr__T  sÃ   € Ø"&×"6Ò"6ÓMÑ"6˜Q¸t¿}¹}Ñ:L—q�qÑ"6ˆÐMØ—i‘iñ %óá$�Að �#�R¨D¯M©M¸!Õ,<×,BÑ,BÓ,DÈÔ,I˜Ÿ™ aÖ(ÈtÏ}É}Ð]^ÕO_×OdÑOdÓOfÐgÓhÙ$ñó
ˆð �~‰~×&Ñ&¨Õ,¨{Õ:¸SÕ@Ð@ùò Nùòs   �C¦C½A(C)r(   r)   r   )N)T))r7   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úhas_rsampleÚhas_enumerate_supportr   Ústaticmethodr   r!   r"   r<   rF   Úpropertyr   r   r*   r\   ra   rf   rj   ro   ry   rw   r   ÚFutureWarningrƒ   r‰   r�   r‘   r•   r™   rž   r¢   r±   r¶   rÂ   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r.   r   s   @@r   r
   r
      s»  ù‡ € ñð €KØ!ÐØ€Nà÷,ó ð,ð$ #(§*¢*£,Ø"'§*¢*£,Ø%)÷	&õ &÷P"ò "ð* ÷!ó ð!ð ÷!ó ð!ð ÷"ó ð"ð ÷"ó ð"ð ÷"ó ð"ð ÷Oó ðOð ÷"ó ð"ð ÷$ó ð$ð ,1¯:ª:«<÷ .ò .ð -2¯JªJ«L÷ "ò "ñ ØGØô÷-ó	ð-÷"ð "÷"ð "÷"ð "÷"ò "÷0"ð "÷)ð )ð 5:·J²J³L÷ Pò P÷2ð 2ôhL÷A÷ Að Ar   )r,   Útyping_extensionsr   r!   r   Útorch.distributionsr   Útorch.distributions.utilsr   Útorch.typesr	   Ú__all__r
   © r   r   Ú<module>rÖ      s2   ðã Ý (ã Ý Ý +Ý 3Ý ð Ð
€÷MAó MAr   