§
    3�ÅjS  ã                  óT   — d dl mZ d dlZd dlmZ 	 	 	 	 ddd„Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚOpRunÚinputú
np.ndarrayÚ	cos_cacheÚ	sin_cacheÚposition_idsúnp.ndarray | NoneÚreturnc                óÈ  — | j         }t          | j         ¦  «        dk    rt          j        | d¦  «        } | j         d         }| j         d         }	t          | j         ¦  «        dk    rB| j         d         }
|dk    sJ ‚t	          |
|z  ¦  «        }||	||g}t          j        | |¦  «        } t          | j         ¦  «        dk    sJ ‚| j         d         }|�|dk    r|}| d d …d d …d d …d |…f         }| d d …d d …d d …|d …f         }t	          |dz  ¦  «        }|�||         }||         }|j         d         |k    r!t          d|j         d         › d	|› d
�¦  «        ‚|j         d         |k    r!t          d|j         d         › d	|› d
�¦  «        ‚t          j        |d¬¦  «        }t          j        |d¬¦  «        }|r+|d d …d d …d d …dd d…f         }|d d …d d …d d …dd d…f         }nt          j        |dd¬¦  «        \  }}||z  ||z  z
  }||z  ||z  z   }|r_t          j        |d¬¦  «        }t          j        |d¬¦  «        }t          j	        ||fd¬¦  «        }t          j        ||j         ¦  «        }nt          j	        ||fd¬¦  «        }t          j	        ||fd¬¦  «        }t          |¦  «        dk    rt          j        ||¦  «        }nt          j        |d¦  «        }|S )Né   )r   é   é   é   r   r   r   r   éÿÿÿÿzLast dimension of cos cache (z)) does not match rotary_embedding_dim/2 (z).zLast dimension of sin cache ()Úaxis)
ÚshapeÚlenÚnpÚ	transposeÚintÚreshapeÚ
ValueErrorÚexpand_dimsÚsplitÚconcatenate)r   r   r   r	   ÚinterleavedÚrotary_embedding_dimÚ	num_headsÚoriginal_input_shapeÚ
batch_sizeÚsequence_lengthÚhidden_sizeÚ	head_sizeÚ	new_shapeÚx_rotateÚx_not_rotateÚrotary_embedding_dim_halfÚx1Úx2ÚrealÚimagÚx_rotate_concatÚoutputs                         úWC:\Projects\Historical\venv\Lib\site-packages\onnx/reference/ops/op_rotary_embedding.pyÚrotary_embeddingr0      s½  € ð !œ;Ðå
ˆ5Œ;ÑÔ˜1ÒÐÝ”˜U LÑ1Ô1ˆØ”˜Q”€JØ”k !”n€OÝ
ˆ5Œ;ÑÔ˜1ÒÐØ”k !”nˆØ˜AŠ~ˆ~ˆ~ˆ~Ý˜ iÑ/Ñ0Ô0ˆ	Ø °)¸YÐGˆ	Ý”
˜5 )Ñ,Ô,ˆÝˆuŒ{ÑÔ˜qÒ Ð Ð Ð Ø”˜A”€Ið Ð#Ð';¸qÒ'@Ð'@à(ÐØ�Q�Q�Q˜˜˜˜1˜1˜1Ð3Ð3Ð3Ð3Ô4€HØ˜˜˜˜A˜A˜A˜q˜q˜qÐ"6Ð"7Ð"7Ð7Ô8€LÝ #Ð$8¸1Ñ$<Ñ =Ô =Ðð ÐØØô
ˆ	ð Øô
ˆ	ð
 „�rÔÐ7Ò7Ð7Ýð H¨I¬O¸BÔ,?ð  Hð  Hð  kDð  Hð  Hð  Hñ
ô 
ð 	
ð „�rÔÐ7Ò7Ð7Ýð H¨I¬O¸BÔ,?ð  Hð  Hð  kDð  Hð  Hð  Hñ
ô 
ð 	
õ ”Ø˜ðñ ô €Iõ ”Ø˜ðñ ô €Ið
 ð 0Ø�a�a�a˜˜˜˜A˜A˜A˜q˜t !˜t�mÔ$ˆØ�a�a�a˜˜˜˜A˜A˜A˜q˜t !˜t�mÔ$ˆˆå”˜( A¨BÐ/Ñ/Ô/‰ˆˆBð ˜‰N˜y¨2™~Ñ.€DØ˜‰N˜y¨2™~Ñ.€Dð ð 9õ Œ~˜d¨Ð,Ñ,Ô,ˆÝŒ~˜d¨Ð,Ñ,Ô,ˆÝœ.¨$°¨¸BÐ?Ñ?Ô?ˆÝ”:˜o¨x¬~Ñ>Ô>ˆˆå”> 4¨ ,°RÐ8Ñ8Ô8ˆÝŒ^˜X |Ð4¸2Ð>Ñ>Ô>€FÝ
ÐÑ Ô  AÒ%Ð%Ý”˜FÐ$8Ñ9Ô9ˆˆå”˜f lÑ3Ô3ˆØ€Mó    c                  ó    — e Zd Z	 	 	 	 d
dd	„ZdS )ÚRotaryEmbeddingNr   r   r   r   r	   r
   r   c           	     ó0   — t          |||||||¬¦  «        fS )N)r	   r   r   r   )r0   )Úselfr   r   r   r	   r   r   r   s           r/   Ú_runzRotaryEmbedding._runc   s5   € õ ØØØØ)Ø'Ø%9Ø#ðñ ô ð

ð 
	
r1   ©NNNN©
r   r   r   r   r   r   r	   r
   r   r   )Ú__name__Ú
__module__Ú__qualname__r6   © r1   r/   r3   r3   b   s;   € € € € € ð +/ØØ!Øð
ð 
ð 
ð 
ð 
ð 
ð 
r1   r3   r7   r8   )Ú
__future__r   Únumpyr   Úonnx.reference.op_runr   r0   r3   r<   r1   r/   ú<module>r@      s˜   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'ð '+ØØØðTð Tð Tð Tð Tðn
ð 
ð 
ð 
ð 
�eñ 
ô 
ð 
ð 
ð 
r1   