§
    1�Åjé)  ã                  ób   — d dl mZ d dlZd dlZd dlmZ d dlmZ 	 ddd„Z	 G d„ de¦  «        Z
dS )é    )ÚannotationsN)ÚBase)ÚexpectÚnoneÚdataú
np.ndarrayÚindicesÚupdatesÚ	reductionÚstrÚreturnc                óp  — |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    rKt          j        |t          ||         ¦  «                 ||         ¦  «        |t          ||         ¦  «        <   Œ´|dk    rLt          j        |t          ||         ¦  «                 ||         ¦  «        |t          ||         ¦  «        <   �Œ||         |t          ||         ¦  «        <   �Œ&|S )NéÿÿÿÿÚaddÚmulÚmaxÚmin)ÚshapeÚlenÚnpÚcopyÚndindexÚtupleÚmaximumÚminimum)r   r	   r
   r   ÚoutputÚis         úVC:\Projects\Historical\venv\Lib\site-packages\onnx/backend/test/case/node/scatternd.pyÚscatter_nd_implr      s¼  € ð Œ=˜Ô¥ D¤J¡¤Ò/Ð/Ð/Ð/ØŒ=˜GœM¨#¨2¨#Ô.°´¸G¼MÈ"Ô<MÐ<OÐ<OÔ1PÑPÒPÐPÐPÐPõ ŒW�T‰]Œ]€FÝŒZ˜œ c r cÔ*Ñ+Ô+ð 3ñ 3ˆà˜ÒÐØ•5˜ œÑ$Ô$Ð%Ð%Ô%¨°¬Ñ3Ð%Ð%Ñ%Ð%Ø˜%ÒÐØ•5˜ œÑ$Ô$Ð%Ð%Ô%¨°¬Ñ3Ð%Ð%Ñ%Ð%Ø˜%ÒÐÝ(*¬
Ø•u˜W QœZÑ(Ô(Ô)¨7°1¬:ñ)ô )ˆF•5˜ œÑ$Ô$Ñ%Ð%ð ˜%ÒÐÝ(*¬
Ø•u˜W QœZÑ(Ô(Ô)¨7°1¬:ñ)ô )ˆF•5˜ œÑ$Ô$Ñ%Ñ%ð )0°¬
ˆF•5˜ œÑ$Ô$Ñ%Ñ%Ø€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edd„¦   «         Z	edd	„¦   «         Z
d
S )Ú	ScatterNDr   ÚNonec            
     ó  — 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©é   é   é   é   ©é   é   é   é   ©r2   r1   r0   r/   ©r-   r,   r+   r*   ©Údtyper   r+   ©r/   r/   r/   r/   ©r0   r0   r0   r0   ©r1   r1   r1   r1   ©r2   r2   r2   r2   ©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ð	õ ”*ð
ñ 
ô 
ˆõ ”(˜Q˜C ! ˜:­R¬XÐ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.   r3   r4   r5   r   r7   r8   r9   r:   r;   r<   r=   r>   ©r   Útest_scatternd_addr@   rB   rI   s        r   Úexport_scatternd_addzScatterND.export_scatternd_addO   óŽ  € åŒ{×$Ò$ØØ1Ð1Ð1Ø�EØð	 %ñ 
ô 
ˆõ Œxà��˜|˜|˜|¨\¨\¨\¸<¸<¸<ÐHØ��˜|˜|˜|¨\¨\¨\¸<¸<¸<ÐHØ��˜|˜|˜|¨\¨\¨\¸<¸<¸<ÐHØ��˜|˜|˜|¨\¨\¨\¸<¸<¸<ÐHð	õ ”*ð
ñ 
ô 
ˆõ ”(˜Q˜C ! ˜:­R¬XÐ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   rM   r)   r.   r3   r4   r5   r   r7   r8   r9   r:   r;   r<   r=   r>   rN   Útest_scatternd_multiplyr@   rB   rI   s        r   Úexport_scatternd_multiplyz#ScatterND.export_scatternd_multiplyu   sŽ  € åŒ{×$Ò$ØØ1Ð1Ð1Ø�EØð	 %ñ 
ô 
ˆõ Œxà��˜|˜|˜|¨\¨\¨\¸<¸<¸<ÐHØ��˜|˜|˜|¨\¨\¨\¸<¸<¸<ÐHØ��˜|˜|˜|¨\¨\¨\¸<¸<¸<ÐHØ��˜|˜|˜|¨\¨\¨\¸<¸<¸<ÐHð	õ ”*ð
ñ 
ô 
ˆõ ”(˜Q˜C ! ˜:­R¬XÐ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   rM   r)   r.   r3   r4   r5   r   r7   r8   r9   r:   r;   r<   r=   r>   rN   Útest_scatternd_maxr@   rB   rI   s        r   Úexport_scatternd_maxzScatterND.export_scatternd_max›   rQ   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   rM   r)   r.   r3   r4   r5   r   r7   r8   r9   r:   r;   r<   r=   r>   rN   Útest_scatternd_minr@   rB   rI   s        r   Úexport_scatternd_minzScatterND.export_scatternd_minÁ   rQ   r    c                 ó‚  — t           j                             dg d¢dgd¬¦  «        } t          j        ddgdd	ggt          j        ¬
¦  «        }t          j        ddgddggt          j        ¬
¦  «        }t          j        ddgt          j        ¬
¦  «        }t          |||d¬¦  «        }t          | |||g|gd¬¦  «         d S )Nr"   r%   r&   r   rM   r*   r+   r,   r-   r5   r   r/   rN   Ú'test_scatternd_max_with_element_indicesr@   rB   rI   s        r   Ú)export_scatternd_max_with_element_indicesz3ScatterND.export_scatternd_max_with_element_indicesç   sâ   € åŒ{×$Ò$ØØ1Ð1Ð1Ø�EØð	 %ñ 
ô 
ˆõ Œx˜!˜Q˜ ! Q Ð(µ´
Ð;Ñ;Ô;ˆõ ”(˜Q ˜F Q¨ FÐ+µ2´8Ð<Ñ<Ô<ˆÝ”(˜A˜q˜6­¬Ð4Ñ4Ô4ˆå   w°À5ÐIÑIÔIˆÝØØ˜' 7Ð+Ø�HØ:ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r    c                 ó‚  — t           j                             dg d¢dgd¬¦  «        } t          j        ddgdd	ggt          j        ¬
¦  «        }t          j        ddgddggt          j        ¬
¦  «        }t          j        ddgt          j        ¬
¦  «        }t          |||d¬¦  «        }t          | |||g|gd¬¦  «         d S )Nr"   r%   r&   r   rM   r*   r+   r,   r-   r5   r   r/   rN   Ú'test_scatternd_min_with_element_indicesr@   rB   rI   s        r   Ú)export_scatternd_min_with_element_indicesz3ScatterND.export_scatternd_min_with_element_indicesý   sà   € åŒ{×$Ò$ØØ1Ð1Ð1Ø�EØð	 %ñ 
ô 
ˆõ Œx˜!˜Q˜ ! Q Ð(µ´
Ð;Ñ;Ô;ˆÝ”(˜Q ˜F Q¨ FÐ+µ2´8Ð<Ñ<Ô<ˆÝ”(˜A˜q˜6­¬Ð4Ñ4Ô4ˆå   w°À5ÐIÑIÔIˆÝØØ˜' 7Ð+Ø�HØ:ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r    N)r   r#   )Ú__name__Ú
__module__Ú__qualname__ÚstaticmethodrK   rP   rT   rW   rZ   r]   r`   © r    r   r"   r"   )   s÷   € € € € € Øð"
ð "
ð "
ñ „\ð"
ðH ð#
ð #
ð #
ñ „\ð#
ðJ ð#
ð #
ð #
ñ „\ð#
ðJ ð#
ð #
ð #
ñ „\ð#
ðJ ð#
ð #
ð #
ñ „\ð#
ðJ ð
ð 
ð 
ñ „\ð
ð* ð
ð 
ð 
ñ „\ð
ð 
ð 
r    r"   )r   )
r   r   r	   r   r
   r   r   r   r   r   )Ú
__future__r   Únumpyr   rC   Úonnx.backend.test.case.baser   Úonnx.backend.test.case.noder   r   r"   re   r    r   ú<module>rj      s°   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .ð RXðð ð ð ð ð8f
ð f
ð f
ð f
ð f
�ñ f
ô f
ð f
ð f
ð f
r    