
    Si                    b    S SK Jr  S SKrS SKJr      S         SS jjr " S S\5      rg)	    )annotationsN)OpRunc                   U R                   n[        U R                   5      S:X  a  [        R                  " U S5      n U R                   S   nU R                   S   n	[        U R                   5      S:X  a>  U R                   S   n
US:w  d   e[	        X-  5      nXXk/n[        R
                  " X5      n [        U R                   5      S:X  d   eU R                   S   nUb  US:X  a  UnU S S 2S S 2S S 2S U24   nU S S 2S S 2S S 2US 24   n[	        US-  5      nUb
  UU   nUU   nUR                   S   U:w  a  [        SUR                   S    S	U S
35      eUR                   S   U:w  a  [        SUR                   S    S	U S
35      e[        R                  " USS9n[        R                  " USS9nU(       a%  US S 2S S 2S S 2SS S24   nUS S 2S S 2S S 2SS S24   nO[        R                  " USSS9u  nnUU-  UU-  -
  nUU-  UU-  -   nU(       ac  [        R                  " USS9n[        R                  " USS9n[        R                  " UU4SS9n[        R
                  " UUR                   5      nO[        R                  " UU4SS9n[        R                  " X4SS9n[        U5      S:X  a  [        R
                  " UU5      nU$ [        R                  " US5      nU$ )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)input	cos_cache	sin_cacheposition_ids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                         e/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/reference/ops/op_rotary_embedding.pyrotary_embeddingr-      s&    !;;
5;;1UL1QJkk!nO
5;;1kk!nA~~/0	)G	

5,u{{q   AI #';q'@(Q133334HAq"6"778L #$81$< = 
	 
	
 r77+IOOB,?+@@i  kD  jE  EG  H
 	
 r77+IOOB,?+@@i  kD  jE  EG  H
 	
 I I
 aAqt!tm$aAqt!tm$(AB/B Ny2~.DNy2~.D  ~~d,~~d,..$B?::ox~~>>>4,R8^^X42>F
 A%F$89 M fl3M    c                  <    \ rS rSr    S         SS jjrSrg)RotaryEmbeddingb   Nc           
     "    [        UUUUUUUS94$ )N)r   r   r   r   )r-   )selfr   r   r   r   r   r   r   s           r,   _runRotaryEmbedding._runc   s+     )'%9#

 
	
r.    NNNN
r   
np.ndarrayr   r9   r   r9   r   znp.ndarray | Nonereturnr9   )__name__
__module____qualname____firstlineno__r4   __static_attributes__r6   r.   r,   r0   r0   b   sJ     +/!

 
 	

 (
 

 
r.   r0   r7   r8   )
__future__r   numpyr   onnx.reference.op_runr   r-   r0   r6   r.   r,   <module>rC      sd    #  ' '+TTT T $	T Tn
e 
r.   