§
    Ë²ÅjB  ã                   óÎ   — U d dl mZ d dlZd dlmZmZmZ d dlmZ d dl	m
Z
 d dlZdaeej                 ed<    ej        d¦  «        d„ ¦   «         Z G d	„ d
e¦  «        Zd„ Zd„ ZdS )é    )ÚOptionalN)ÚTorchFunctionModeÚ	_pop_modeÚ
_push_mode©Úcontext_decorator)Ú_len_torch_function_stackÚCURRENT_DEVICEé   c                  óä  — h t           j        ’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(        ’t           j%        ’S ©N))ÚtorchÚemptyÚempty_permutedÚempty_stridedÚempty_quantizedÚonesÚarangeÚbartlett_windowÚblackman_windowÚeyeÚfftÚfftfreqÚrfftfreqÚfullÚfillÚhamming_windowÚhann_windowÚkaiser_windowÚlinspaceÚlogspaceÚnestedÚnested_tensorÚrandÚrandnÚrandintÚrandpermÚrangeÚsparse_coo_tensorÚsparse_compressed_tensorÚsparse_csr_tensorÚsparse_csc_tensorÚsparse_bsr_tensorÚsparse_bsc_tensorÚtril_indicesÚtriu_indicesÚvanderÚzerosÚasarrayÚtensorÚ	as_tensorÚscalar_tensor© ó    úDC:\Projects\Historical\venv\Lib\site-packages\torch/utils/_device.pyÚ_device_constructorsr:      s  € ð-åŒð-õ 	Ôð-õ 	Ôð	-õ
 	Ôð-õ 	Œ
ð-õ 	Œð-õ 	Ôð-õ 	Ôð-õ 	Œ	ð-õ 	Œ	Ôð-õ 	Œ	Ôð-õ 	Œ
ð-õ 	Œ
ð-õ 	Ôð-õ  	Ôð!-õ" 	Ôð#-õ$ 	Œð%-õ& 	Œð'-õ( 	ŒÔ"ð)-õ. 	Œ
ð/-õ0 	Œ
ð1-õ2 	Œð3-õ4 	Œð5-õ6 	Œð7-õ8 	Œð9-õ: 	Ôð;-õ< 	Ô&ð=-õ> 	Ôð?-õ@ 	ÔðA-õB 	ÔðC-õD 	ÔðE-õF 	ÔðG-õH 	ÔðI-õJ 	ŒðK-õL 	ŒðM-õN 	ŒðO-õR 	ŒðS-õT 	ŒðU-õV 	ÔðW-õX 	ŒðY-ð -r8   c                   ó(   — e Zd Zd„ Zd„ Zd„ Zdd„ZdS )ÚDeviceContextc                 ó8   — t          j        |¦  «        | _        d S r   )r   Údevice)Úselfr>   s     r9   Ú__init__zDeviceContext.__init__>   s   € Ý”l 6Ñ*Ô*ˆŒˆˆr8   c                 óÖ   — t           | _        | j        a d„ t          t	          ¦   «         ¦  «        D ¦   «         }t          | ¦  «         t          |¦  «        D ]}t          |¦  «         Œd S )Nc                 ó*   — g | ]}t          ¦   «         ‘ŒS r7   )r   )Ú.0Ú_s     r9   ú
<listcomp>z+DeviceContext.__enter__.<locals>.<listcomp>I   s   € ÐMÐMÐM Q•Y‘[”[ÐMÐMÐMr8   )r
   Ú
old_devicer>   r(   r	   r   Úreversed)r?   Ú	cur_stackÚmodes      r9   Ú	__enter__zDeviceContext.__enter__A   su   € å(ˆŒØœˆð
 NÐM­%Õ0IÑ0KÔ0KÑ*LÔ*LÐMÑMÔMˆ	å�4ÑÔÐå˜YÑ'Ô'ð 	ð 	ˆDÝ�tÑÔÐÐð	ð 	r8   c                 ó~  — | j         ag }t          t          ¦   «         dz
  ¦  «        D ]<}t	          ¦   «         }t          |t          ¦  «        rJ ‚|                     |¦  «         Œ=t          ¦   «         dk    r%t	          ¦   «         }t          |t          ¦  «        sJ ‚t          |¦  «        D ]}t          |¦  «         Œd S )Nr   r   )
rF   r
   r(   r	   r   Ú
isinstancer<   ÚappendrG   r   )r?   Úexc_typeÚexc_valÚexc_tbrH   rD   rI   s          r9   Ú__exit__zDeviceContext.__exit__Q   sË   € àœˆØˆ	õ Õ0Ñ2Ô2°QÑ6Ñ7Ô7ð 	#ð 	#ˆAÝ‘;”;ˆDÝ! $­Ñ6Ô6Ð6Ð6Ð6Ø×Ò˜TÑ"Ô"Ð"Ð"å$Ñ&Ô&¨Ò*Ð*Ý‘;”;ˆDÝ˜d¥MÑ2Ô2Ð2Ð2Ð2å˜YÑ'Ô'ð 	ð 	ˆDÝ�tÑÔÐÐð	ð 	r8   r7   Nc                 óx   — |pi }|t          ¦   «         v r|                     d¦  «        €
| j        |d<    ||i |¤ŽS )Nr>   )r:   Úgetr>   )r?   ÚfuncÚtypesÚargsÚkwargss        r9   Ú__torch_function__z DeviceContext.__torch_function__d   sO   € Ø�˜2ˆØÕ'Ñ)Ô)Ð)Ð)¨f¯jªj¸Ñ.BÔ.BÐ.JØ#œ{ˆF�8ÑØˆt�TÐ$˜VÐ$Ð$Ð$r8   )r7   N)Ú__name__Ú
__module__Ú__qualname__r@   rJ   rQ   rX   r7   r8   r9   r<   r<   =   sU   € € € € € ð+ð +ð +ðð ð ð ð ð ð&%ð %ð %ð %ð %ð %r8   r<   c                 ó*   ‡ — t          ˆ fd„|¦  «        S )Nc                  ó   •— ‰ S r   r7   ©r>   s   €r9   ú<lambda>z"device_decorator.<locals>.<lambda>l   s   ø€  V€ r8   r   )r>   rT   s   ` r9   Údevice_decoratorr`   k   s   ø€ Ý˜^˜^˜^˜^¨TÑ2Ô2Ð2r8   c                 ó   ‡ — ˆ fd„S )zð
    Set the default device inside of the wrapped function by decorating it with this 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                 óH   •— t          t          j        ‰¦  «        | ¦  «        S r   )r`   r   r>   )rT   r>   s    €r9   r_   zset_device.<locals>.<lambda>u   s   ø€ Õ(­¬°fÑ)=Ô)=¸tÑDÔD€ r8   r7   r^   s   `r9   Ú
set_devicerc   n   s   ø€ ð EÐDÐDÐDÐDr8   )Útypingr   r   Útorch.overridesr   r   r   Útorch.utils._contextlibr   Útorch._Cr	   Ú	functoolsr
   r>   Ú__annotations__Ú	lru_cacher:   r<   r`   rc   r7   r8   r9   ú<module>rk      s	  ðà Ð Ð Ð Ð Ð Ð Ø €€€Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð à)-€�˜œÔ&Ð -Ð -Ñ -à€Ô�QÑÔð.ð .ñ Ôð.ðb+%ð +%ð +%ð +%ð +%Ð%ñ +%ô +%ð +%ð\3ð 3ð 3ðEð Eð Eð Eð Er8   