
    Ng!                     R    d dl Zd dlZd dlmZ d dlmZ ddZ G d de          ZdS )	    N)Base)expectnonec                 :   |j         d         t          | j                   k    sJ |j         |j         d d         | j         |j         d         d          z   k    sJ t          j        |           }t          j        |j         d d                   D ]	}|dk    r*|t          ||                   xx         ||         z  cc<   3|dk    r*|t          ||                   xx         ||         z  cc<   c|dk    r>t          j        |||                  ||                   |t          ||                   <   |dk    r>t          j        |||                  ||                   |t          ||                   <   ||         |t          ||                   <   |S )Naddmulmaxmin)shapelennpcopyndindextuplemaximumminimum)dataindicesupdates	reductionoutputis         a/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/backend/test/case/node/scatternd.pyscatter_nd_implr      s   =DJ////=GM#2#.GM"<M<O<O1PPPPPP WT]]FZcrc*++ 3 35$$%%%3%%%%%5$$%%%3%%%%%(*
6'!*3Ewqz(R(RF5$$%%%(*
6'!*3Ewqz(R(RF5$$%%(/
F5$$%%M    c                       e Zd Zedd            Zedd            Zedd            Zedd            Zedd            ZdS )		ScatterNDreturnNc            
         t           j                            dg ddg          } t          j        g dg dg dg dgg dg dg dg dgg dg dg dg dgg dg dg dg dggt          j        	          }t          j        d
gdggt          j        	          }t          j        g dg dg dg dgg dg dg dg dggt          j        	          }t          |||          }t          | |||g|gd           d S )Nr   r   r   r   y)inputsoutputs                        r.   r-   r,   r+   r)   r(   r'   r&   dtyper   r'   r+   r+   r+   r+   r,   r,   r,   r,   r-   r-   r-   r-   r.   r.   r.   r.   r&   r&   r&   r&   r'   r'   r'   r'   r(   r(   r(   r(   r)   r)   r)   r)   test_scatterndr#   r$   name	onnxhelper	make_noder   arrayfloat32int64r   r   noder   r   r   r   s        r   export_scatterndzScatterND.export_scatternd#   s   {$$111E % 
 

 x|||\\\<<<H|||\\\<<<H|||\\\<<<H|||\\\<<<H	 *
 
 
 (QC!:RX666(|||\\\<<<H|||\\\<<<H *
 
 
 !w88'7+H!		
 	
 	
 	
 	
 	
r   c            
      
   t           j                            dg ddgd          } t          j        g dg dg dg d	gg dg dg dg d	gg dg d	g dg dgg dg d	g dg dggt          j        
          }t          j        dgdggt          j        
          }t          j        g dg dg dg dgg dg dg dg dggt          j        
          }t          |||d          }t          | |||g|gd           d S )Nr   r!   r"   r   r#   r$   r   r%   r*   r/   r0   r1   r   r3   r4   r5   r6   r7   r8   r9   r:   r   test_scatternd_addr<   r>   rE   s        r   export_scatternd_addzScatterND.export_scatternd_addH      {$$111E	 % 
 
 x|||\\\<<<H|||\\\<<<H|||\\\<<<H|||\\\<<<H	 *
 
 
 (QC!:RX666(|||\\\<<<H|||\\\<<<H *
 
 
 !w5III'7+H%		
 	
 	
 	
 	
 	
r   c            
      
   t           j                            dg ddgd          } t          j        g dg dg dg d	gg dg dg dg d	gg dg d	g dg dgg dg d	g dg dggt          j        
          }t          j        dgdggt          j        
          }t          j        g dg dg dg dgg dg dg dg dggt          j        
          }t          |||d          }t          | |||g|gd           d S )Nr   r!   r"   r	   rI   r%   r*   r/   r0   r1   r   r3   r4   r5   r6   r7   r8   r9   r:   rJ   test_scatternd_multiplyr<   r>   rE   s        r   export_scatternd_multiplyz#ScatterND.export_scatternd_multiplyn   s   {$$111E	 % 
 
 x|||\\\<<<H|||\\\<<<H|||\\\<<<H|||\\\<<<H	 *
 
 
 (QC!:RX666(|||\\\<<<H|||\\\<<<H *
 
 
 !w5III'7+H*		
 	
 	
 	
 	
 	
r   c            
      
   t           j                            dg ddgd          } t          j        g dg dg dg d	gg dg dg dg d	gg dg d	g dg dgg dg d	g dg dggt          j        
          }t          j        dgdggt          j        
          }t          j        g dg dg dg dgg dg dg dg dggt          j        
          }t          |||d          }t          | |||g|gd           d S )Nr   r!   r"   r
   rI   r%   r*   r/   r0   r1   r   r3   r4   r5   r6   r7   r8   r9   r:   rJ   test_scatternd_maxr<   r>   rE   s        r   export_scatternd_maxzScatterND.export_scatternd_max   rM   r   c            
      
   t           j                            dg ddgd          } t          j        g dg dg dg d	gg dg dg dg d	gg dg d	g dg dgg dg d	g dg dggt          j        
          }t          j        dgdggt          j        
          }t          j        g dg dg dg dgg dg dg dg dggt          j        
          }t          |||d          }t          | |||g|gd           d S )Nr   r!   r"   r   rI   r%   r*   r/   r0   r1   r   r3   r4   r5   r6   r7   r8   r9   r:   rJ   test_scatternd_minr<   r>   rE   s        r   export_scatternd_minzScatterND.export_scatternd_min   rM   r   )r   N)	__name__
__module____qualname__staticmethodrG   rL   rP   rS   rV    r   r   r   r   "   s        "
 "
 "
 \"
H #
 #
 #
 \#
J #
 #
 #
 \#
J #
 #
 #
 \#
J #
 #
 #
 \#
 #
 #
r   r   )r   )	numpyr   r?   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r[   r   r   <module>r_      s   
      , , , , , , . . . . . .   ,|
 |
 |
 |
 |
 |
 |
 |
 |
 |
r   