a
    ¤þdÎ  ã                   @   s^   d dl Z d dlmZ d dlmZ d dlZe d¡dd„ ƒZG dd„ deƒZd	d
„ Z	dd„ Z
dS )é    N)ÚTorchFunctionMode©Úcontext_decoratoré   c                &   C   s¢   t jt jt jt jt jt jt jt jt j	j
t j	jt jt jt jt jt jt jt jt jjt jt jt jt jt jt jt jt jt jt jt jt jt j t j!t j"t j#t j$t j%t j&t j'h&S ©N)(ÚtorchÚemptyZempty_stridedZempty_quantizedZonesZarangeZbartlett_windowZblackman_windowZeyeZfftZfftfreqZrfftfreqÚfullÚfillZhamming_windowZhann_windowZkaiser_windowZlinspaceZlogspaceÚnestedZnested_tensorZrandZrandnÚrandintZrandpermÚrangeZsparse_coo_tensorZsparse_compressed_tensorZsparse_csr_tensorZsparse_csc_tensorZsparse_bsr_tensorZsparse_bsc_tensorZtril_indicesZtriu_indicesZvanderÚzerosZasarrayZtensorZ	as_tensorZscalar_tensor© r   r   ú\/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/torch/utils/_device.pyÚ_device_constructors   sN    Ör   c                   @   s   e Zd Zdd„ Zddd„ZdS )ÚDeviceContextc                 C   s   t  |¡| _d S r   )r   Údevice)Úselfr   r   r   r   Ú__init__7   s    zDeviceContext.__init__r   Nc                 C   s8   |pi }|t ƒ v r*| d¡d u r*| j|d< ||i |¤ŽS )Nr   )r   Úgetr   )r   ÚfuncÚtypesÚargsÚkwargsr   r   r   Ú__torch_function__:   s    
z DeviceContext.__torch_function__)r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   6   s   r   c                    s   t ‡ fdd„|ƒS )Nc                      s   ˆ S r   r   r   ©r   r   r   Ú<lambda>B   ó    z"device_decorator.<locals>.<lambda>r   )r   r   r   r   r   Údevice_decoratorA   s    r"   c                    s   ‡ fdd„S )zá
    Decorator which sets the default device inside of the wrapped
    function.  If you would like to use this as a context manager,
    use device as a context manager directly, e.g.,
    ``with torch.device(device)``.
    c                    s   t t ˆ ¡| ƒS r   )r"   r   r   )r   r   r   r   r    K   r!   zset_device.<locals>.<lambda>r   r   r   r   r   Ú
set_deviceD   s    r#   )r   Ztorch.overridesr   Ztorch.utils._contextlibr   Ú	functoolsÚ	lru_cacher   r   r"   r#   r   r   r   r   Ú<module>   s   
/