§
    }Y¼h6  ã                   ó”   — d dl Z d dlmZmZ d dlZd dlmZmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZ dgZ G d	„ de¦  «        ZdS )
é    N)ÚOptionalÚUnion)ÚinfÚnanÚTensor)ÚChi2Úconstraints)ÚDistribution)Ú_standard_normalÚbroadcast_all)Ú_sizeÚStudentTc                   óR  ‡ — e Zd ZdZej        ej        ej        dœZej        ZdZ	e
defd„¦   «         Ze
defd„¦   «         Ze
defd„¦   «         Z	 	 	 ddeeef         deeef         deeef         dee         dd
f
ˆ fd„Zdˆ fd„	Z ej        ¦   «         fdedefd„Zd„ Zd„ Zˆ xZS )r   a  
    Creates a Student's t-distribution parameterized by degree of
    freedom :attr:`df`, mean :attr:`loc` and scale :attr:`scale`.

    Example::

        >>> # xdoctest: +IGNORE_WANT("non-deterministic")
        >>> m = StudentT(torch.tensor([2.0]))
        >>> m.sample()  # Student's t-distributed with degrees of freedom=2
        tensor([ 0.1046])

    Args:
        df (float or Tensor): degrees of freedom
        loc (float or Tensor): mean of the distribution
        scale (float or Tensor): scale of the distribution
    )ÚdfÚlocÚscaleTÚreturnc                 óv   — | j                              t          j        ¬¦  «        }t          || j        dk    <   |S )N©Úmemory_formaté   )r   ÚcloneÚtorchÚcontiguous_formatr   r   ©ÚselfÚms     ún/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/torch/distributions/studentT.pyÚmeanzStudentT.mean*   s.   € àŒHNŠN­Ô)@ˆNÑAÔAˆÝˆˆ$Œ'QŠ,‰Øˆó    c                 ó   — | j         S ©N)r   )r   s    r   ÚmodezStudentT.mode0   s	   € àŒxˆr    c                 ó€  — | j                              t          j        ¬¦  «        }| j        | j         dk                                  d¦  «        | j         | j         dk             z  | j         | j         dk             dz
  z  || j         dk    <   t          || j         dk    | j         dk    z  <   t          || j         dk    <   |S )Nr   é   r   )r   r   r   r   r   Úpowr   r   r   s     r   ÚvariancezStudentT.variance4   s§   € àŒGMŠM­Ô(?ˆMÑ@Ô@ˆàŒJt”w ’{Ô#×'Ò'¨Ñ*Ô*ØŒgd”g ’kÔ"ñ#àŒwt”w ’{Ô# aÑ'ñ)ð 	
ˆ$Œ'AŠ+‰õ
 -0ˆˆ4Œ7aŠ<˜DœG ašKÑ
(Ñ)Ýˆˆ$Œ'QŠ,‰Øˆr    ç        ç      ð?Nr   r   r   Úvalidate_argsc                 óú   •— t          |||¦  «        \  | _        | _        | _        t	          | j        ¦  «        | _        | j                             ¦   «         }t          ¦   «                              ||¬¦  «         d S )N©r*   )	r   r   r   r   r   Ú_chi2ÚsizeÚsuperÚ__init__)r   r   r   r   r*   Úbatch_shapeÚ	__class__s         €r   r0   zStudentT.__init__@   sd   ø€ õ )6°b¸#¸uÑ(EÔ(EÑ%ˆŒ”˜4œ:Ý˜$œ'‘]”]ˆŒ
Ø”g—l’l‘n”nˆÝ‰Œ×Ò˜°MÐÑBÔBÐBÐBÐBr    c                 óÊ  •— |                       t          |¦  «        }t          j        |¦  «        }| j                             |¦  «        |_        | j                             |¦  «        |_        | j                             |¦  «        |_        | j                             |¦  «        |_        t          t          |¦  «         
                    |d¬¦  «         | j        |_        |S )NFr,   )Ú_get_checked_instancer   r   ÚSizer   Úexpandr   r   r-   r/   r0   Ú_validate_args)r   r1   Ú	_instanceÚnewr2   s       €r   r6   zStudentT.expandL   s²   ø€ Ø×(Ò(­°9Ñ=Ô=ˆÝ”j Ñ-Ô-ˆØ”—’ Ñ,Ô,ˆŒØ”(—/’/ +Ñ.Ô.ˆŒØ”J×%Ò% kÑ2Ô2ˆŒ	Ø”J×%Ò% kÑ2Ô2ˆŒ	Ýh˜ÑÔ×%Ò% kÀÐ%ÑGÔGÐGØ!Ô0ˆÔØˆ
r    Úsample_shapec                 ó  — |                       |¦  «        }t          || j        j        | j        j        ¬¦  «        }| j                             |¦  «        }|t          j        || j        z  ¦  «        z  }| j	        | j
        |z  z   S )N)ÚdtypeÚdevice)Ú_extended_shaper   r   r<   r=   r-   Úrsampler   Úrsqrtr   r   )r   r:   ÚshapeÚXÚZÚYs         r   r?   zStudentT.rsampleW   su   € ð ×$Ò$ \Ñ2Ô2ˆÝ˜U¨$¬'¬-ÀÄÄÐOÑOÔOˆØŒJ×Ò˜|Ñ,Ô,ˆØ•”˜A ¤™KÑ(Ô(Ñ(ˆØŒx˜$œ* q™.Ñ(Ð(r    c                 óè  — | j         r|                      |¦  «         || j        z
  | j        z  }| j                             ¦   «         d| j                             ¦   «         z  z   dt          j        t          j        ¦  «        z  z   t          j	        d| j        z  ¦  «        z   t          j	        d| j        dz   z  ¦  «        z
  }d| j        dz   z  t          j
        |dz  | j        z  ¦  «        z  |z
  S )Nç      à?r)   g      à¿g       @)r7   Ú_validate_sampler   r   Úlogr   ÚmathÚpir   ÚlgammaÚlog1p)r   ÚvalueÚyrC   s       r   Úlog_probzStudentT.log_probe   sã   € ØÔð 	)Ø×!Ò! %Ñ(Ô(Ð(ØT”XÑ ¤Ñ+ˆàŒJNŠNÑÔØD”G—K’K‘M”MÑ!ñ"à•D”HTœWÑ%Ô%Ñ%ñ&õ Œl˜3 ¤™=Ñ)Ô)ñ*õ Œl˜3 $¤'¨C¡-Ñ0Ñ1Ô1ñ	2ð 	
ð t”w ‘}Ñ%­¬°A°s±F¸T¼WÑ4DÑ(EÔ(EÑEÈÑIÐIr    c                 ó¬  — t          j        d| j        z  ¦  «        t          j        d¦  «        z   t          j        d| j        dz   z  ¦  «        z
  }| j                             ¦   «         d| j        dz   z  t          j        d| j        dz   z  ¦  «        t          j        d| j        z  ¦  «        z
  z  z   d| j                             ¦   «         z  z   |z   S )NrF   r   )r   rK   r   rI   r   rH   Údigamma)r   Úlbetas     r   ÚentropyzStudentT.entropyr   sÌ   € åŒL˜˜tœw™Ñ'Ô'ÝŒk˜#ÑÔñåŒl˜3 $¤'¨A¡+Ñ.Ñ/Ô/ñ0ð 	ð ŒJNŠNÑÔØØŒw˜‰{ñåŒ}˜S D¤G¨a¡KÑ0Ñ1Ô1µE´MÀ#ÈÌÁ-Ñ4PÔ4PÑPñRñRð D”G—K’K‘M”MÑ!ñ	"ð
 ñð	
r    )r(   r)   Nr"   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   ÚpositiveÚrealÚarg_constraintsÚsupportÚhas_rsampleÚpropertyr   r   r#   r'   r   Úfloatr   Úboolr0   r6   r   r5   r   r?   rO   rS   Ú__classcell__)r2   s   @r   r   r      sÇ  ø€ € € € € ðð ð$ Ô"ØÔØÔ%ðð €Oð
 Ô€GØ€Kàðfð ð ð ñ „Xðð
 ðfð ð ð ñ „Xðð ð	˜&ð 	ð 	ð 	ñ „Xð	ð %(Ø&)Ø(,ð
Cð 
Cà&˜%-Ô ð
Cð 6˜5=Ô!ð
Cð V˜U]Ô#ð	
Cð
   ”~ð
Cð 
ð
Cð 
Cð 
Cð 
Cð 
Cð 
Cð	ð 	ð 	ð 	ð 	ð 	ð -7¨E¬J©L¬Lð )ð ) Eð )¸Vð )ð )ð )ð )ðJð Jð Jð
ð 
ð 
ð 
ð 
ð 
ð 
r    )rI   Útypingr   r   r   r   r   r   Útorch.distributionsr   r	   Ú torch.distributions.distributionr
   Útorch.distributions.utilsr   r   Útorch.typesr   Ú__all__r   © r    r   ú<module>rh      sè   ðà €€€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ Ð Ð Ð Ð Ð ð ˆ,€ðo
ð o
ð o
ð o
ð o
ˆ|ñ o
ô o
ð o
ð o
ð o
r    