o
    IñhE  ã                   @   sš   U d dl Z d dlZd dlZdedefdd„Zdedefdd„ZG dd	„ d	ƒZG d
d„ dƒZG dd„ dej	ƒZ
e
e je eƒe je< eed< ee ed< dS )é    NÚqengineÚreturnc                 C   sr   | dks| dks| d u rd}|S | dkrd}|S | dkr d}|S | dkr(d	}|S | d
kr0d}|S d}t | › dƒ‚)NÚnoneÚ r   Úfbgemmé   Úqnnpacké   Úonednné   Úx86é   éÿÿÿÿz* is not a valid value for quantized engine©ÚRuntimeError)r   Úret© r   úU/var/www/vscode/kcb/lib/python3.10/site-packages/torch/backends/quantized/__init__.pyÚ_get_qengine_id	   s"   õ
÷ùûþr   c                 C   s   ddddddœ}|  | d¡S )Nr   r   r   r
   r   )r   r   r	   r   r   z
*undefined)Úget)r   Úall_enginesr   r   r   Ú_get_qengine_str   s   r   c                   @   s,   e Zd Zdefdd„Zdeddfdd„ZdS )Ú_QEnginePropr   c                 C   s   t tj ¡ ƒS ©N)r   ÚtorchÚ_CÚ_get_qengine)ÚselfÚobjÚobjtyper   r   r   Ú__get__!   s   z_QEngineProp.__get__ÚvalNc                 C   s   t j t|ƒ¡ d S r   )r   r   Ú_set_qenginer   ©r   r   r!   r   r   r   Ú__set__$   s   z_QEngineProp.__set__)Ú__name__Ú
__module__Ú__qualname__Ústrr    r$   r   r   r   r   r       s    r   c                   @   s(   e Zd Zdee fdd„Zddd„ZdS )Ú_SupportedQEnginesPropr   c                 C   s   t j ¡ }dd„ |D ƒS )Nc                 S   s   g | ]}t |ƒ‘qS r   )r   )Ú.0Úqer   r   r   Ú
<listcomp>+   s    z2_SupportedQEnginesProp.__get__.<locals>.<listcomp>)r   r   Ú_supported_qengines)r   r   r   Úqenginesr   r   r   r    )   s   
z_SupportedQEnginesProp.__get__Nc                 C   s   t dƒ‚)NzAssignment not supportedr   r#   r   r   r   r$   -   s   z_SupportedQEnginesProp.__set__)r   N)r%   r&   r'   Úlistr(   r    r$   r   r   r   r   r)   (   s    r)   c                       s0   e Zd Z‡ fdd„Zdd„ Zeƒ Zeƒ Z‡  Z	S )ÚQuantizedEnginec                    s   t ƒ  |¡ || _d S r   )ÚsuperÚ__init__Úm)r   r3   Úname©Ú	__class__r   r   r2   2   s   
zQuantizedEngine.__init__c                 C   s   | j  |¡S r   )r3   Ú__getattribute__)r   Úattrr   r   r   Ú__getattr__6   s   zQuantizedEngine.__getattr__)
r%   r&   r'   r2   r9   r   Úenginer)   Úsupported_enginesÚ__classcell__r   r   r5   r   r0   1   s
    r0   r:   r;   )ÚsysÚtypesr   r(   Úintr   r   r   r)   Ú
ModuleTyper0   Úmodulesr%   Ú__annotations__r/   r   r   r   r   Ú<module>   s   
	