U
    q±Ëhð  ã                   @  s>   d dl mZ d dlZd dlmZ ddd„ZG dd„ deƒZdS )	é    )ÚannotationsN)ÚOpRunc                 C  sä   t  | ¡}t  |jd d… ¡D ]À}|dkrH|t|| ƒ  || 7  < q|dkrn|t|| ƒ  || 9  < q|dkrœt  |||  || ¡|t|| ƒ< q|dkrÊt  |||  || ¡|t|| ƒ< q|| |t|| ƒ< q|S )NéÿÿÿÿÚaddÚmulÚmaxÚmin)ÚnpÚcopyZndindexÚshapeÚtupleÚmaximumZminimum)ÚdataÚindicesÚupdatesÚ	reductionÚoutputÚi© r   úC/tmp/pip-unpacked-wheel-xnis5xre/onnx/reference/ops/op_scatternd.pyÚ_scatter_nd_impl   s    
&&r   c                   @  s   e Zd Zddd„ZdS )Ú	ScatterNDNc                 C  s   t ||||d}|fS )N)r   )r   )Úselfr   r   r   r   Úyr   r   r   Ú_run   s    zScatterND._run)N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   r   )N)Ú
__future__r   Znumpyr	   Zonnx.reference.op_runr   r   r   r   r   r   r   Ú<module>   s   
