U
    q±ËhÕ  ã                   @  s4   d dl mZ d dlZd dlmZ G dd„ deƒZdS )é    )ÚannotationsN)ÚOpRunc                   @  s   e Zd Zdd„ ZdS )ÚDynamicQuantizeLinearc                 C  sÜ   t jdd  }}}t  t  dt  |¡¡¡}t  t  dt  |¡¡¡}t  ||krRdn|| ¡t  || ¡ }t  |¡||  }t|t||ƒƒ}	t  |	¡}
t  t  || ¡|
 ||¡}| 	|¡t  
| 	|j¡¡t  
|
 	|¡¡fS )Nr   éÿ   g      ð?)ÚnpZuint8Zfloat32ÚmaximumÚmaxZminimumÚminZrintZclipZastypeÚarrayÚdtype)ÚselfÚxr   ZqminZqmaxZmaxxZminxZy_scaleZinitial_zero_pointZzpZzpiÚy© r   úQ/tmp/pip-unpacked-wheel-xnis5xre/onnx/reference/ops/op_dynamic_quantize_linear.pyÚ_run   s    ÿ
ýzDynamicQuantizeLinear._runN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   r   )Ú
__future__r   Znumpyr   Zonnx.reference.op_runr   r   r   r   r   r   Ú<module>   s   