U
    qh                     @  s@   d dl mZ d dlZd dlmZ d dlmZ G dd deZdS )    )annotationsN)OpRun)_conv_implementationc                   @  s   e Zd ZdddZdS )QLinearConvNc              
   C  s  |
p| j }
|p| j}|p| j}|p&| j}|p0| j}|p:| j}|tj}|d k	rX||8 }|tj}|d k	rt	|j
dkr|j
d |j
d kr|j
d fdt	|j
d   }|||8 }n||8 }t|||	|
|||||	tj}||| |  }|d k	rF||7 }|jtjkr$t|dd}nt|dd}t||jfS |jtjkrdt|dd}nt|dd}t||jfS )N   r   )r   i      )auto_pad	dilationsgroupkernel_shapepadsstridesZastypenpZint32lenshapeZreshaper   ZdtypeZint8Zclipround)selfxZx_scaleZx_zero_pointwZw_scaleZw_zero_pointZy_scaleZy_zero_pointBr	   r
   r   r   r   r   XWmissingresR r   F/tmp/pip-unpacked-wheel-xnis5xre/onnx/reference/ops/op_qlinear_conv.py_run   sN    





"        
zQLinearConv._run)NNNNNNN)__name__
__module____qualname__r   r   r   r   r   r      s          r   )	
__future__r   Znumpyr   Zonnx.reference.op_runr   Zonnx.reference.ops.op_convr   r   r   r   r   r   <module>   s   