§
    2�Åjm  ã                  óR   — d dl mZ d dlZd dlmZ dd„Zdd„Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚOpRunÚselfú
np.ndarrayÚindexÚreturnc                óÞ   — g }t          | |d¬¦  «        D ]&\  }}|                     ||d                  ¦  «         Œ't          j        || j        ¬¦  «                             |j        ¦  «        S )NT)Ústrictr   ©Údtype)ÚzipÚappendÚnpÚarrayr   ÚreshapeÚshape)r   r   ÚresÚaÚbs        úVC:\Projects\Historical\venv\Lib\site-packages\onnx/reference/ops/op_gather_elements.pyÚgather_numpy_2r      sm   € Ø
€CÝ�D˜%¨Ð-Ñ-Ô-ð ð ‰ˆˆ1Ø�
Š
�1�Q�q”T”7ÑÔÐÐÝŒ8�C˜tœzÐ*Ñ*Ô*×2Ò2°5´;Ñ?Ô?Ð?ó    ÚdimÚintc                ó  — |j         d |…         |j         |dz   d …         z   }| j         d |…         | j         |dz   d …         z   }||k    rt          d|›d�¦  «        ‚t          j        | d|¦  «        }t          j        |d|¦  «        }	 t          j        ||d¬¦  «        }nQ# t          $ rD t          |j         ¦  «        dk    r*t          |j         ¦  «        dk    rt          | |¦  «        cY S ‚ w xY wt          j        |d|¦  «        S )Né   zExcept for dimension z;, all dimensions of index and self should be the same size.r   Úwrap)Úmodeé   )r   Ú
ValueErrorr   ÚswapaxesÚchooseÚlenr   )r   r   r   Úidx_xsection_shapeÚself_xsection_shapeÚdata_swappedÚindex_swappedÚgathereds           r   Úgather_numpyr)      s:  € Øœ T c TÔ*¨U¬[¸¸q¹¸¸Ô-CÑCÐØœ* T c TÔ*¨T¬Z¸¸a¹¸	¸	Ô-BÑBÐØÐ0Ò0Ð0Ýð7 Cð 7ð 7ð 7ñ
ô 
ð 	
õ ”;˜t Q¨Ñ,Ô,€LÝ”K  q¨#Ñ.Ô.€MðÝ”9˜]¨L¸vÐFÑFÔFˆˆøÝð ð ð Ýˆ}Ô"Ñ#Ô# qÒ(Ð(­S°Ô1CÑ-DÔ-DÈÒ-IÐ-IÝ! $¨Ñ.Ô.Ð.Ð.Ð.Øðøøøõ
 Œ;�x  CÑ(Ô(Ð(s   ÂB# Â#A
C1Ã/C1c                  ó   — e Zd Zdd„ZdS )ÚGatherElementsNc                óô   — |j         dk    r!t          j        |j        |j        ¬¦  «        fS 	 t          |||¦  «        fS # t          $ r- t          |||                     t          ¦  «        ¦  «        fcY S w xY w)Nr   r   )	Úsizer   Úemptyr   r   r)   Ú	TypeErrorÚastyper   )r   ÚdataÚindicesÚaxiss       r   Ú_runzGatherElements._run(   sŒ   € ØŒ<˜1ÒÐÝ”H˜Wœ]°$´*Ð=Ñ=Ô=Ð?Ð?ð	DÝ   t¨WÑ5Ô5Ð7Ð7øÝð 	Dð 	Dð 	Då   t¨W¯^ª^½CÑ-@Ô-@ÑAÔAÐCÐCÐCÐCð	Døøøs   ®A  Á 4A7Á6A7)N)Ú__name__Ú
__module__Ú__qualname__r4   © r   r   r+   r+   '   s.   € € € € € ðDð Dð Dð Dð Dð Dr   r+   )r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )	Ú
__future__r   Únumpyr   Úonnx.reference.op_runr   r   r)   r+   r8   r   r   ú<module>r<      s¡   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'ð@ð @ð @ð @ð)ð )ð )ð )ð*Dð Dð Dð Dð D�Uñ Dô Dð Dð Dð Dr   