§
    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l	m
Z
  G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚBase)Úexpect)Úrotary_embeddingc                  óÎ   — 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
edd
„¦   «         ZdS )ÚRotaryEmbeddingÚreturnÚNonec                 ó”  — t           j                             dg d¢dg¬¦  «        } t          j                             dddd¦  «                             t          j        ¦  «        }t          j                             d	d
d¦  «                             t          j	        ¦  «        }t          j                             d
d¦  «                             t          j        ¦  «        }t          j                             d
d¦  «                             t          j        ¦  «        }t          ||||¬¦  «        }t          | ||||g|gd¬¦  «         d S )Nr   ©ÚinputÚ	cos_cacheÚ	sin_cacheÚposition_idsÚoutput©ÚinputsÚoutputsé   é   é   é   r   é2   ©r   r   )r   Útest_rotary_embedding©r   r   Úname©ÚonnxÚhelperÚ	make_nodeÚnpÚrandomÚrandÚastypeÚfloat32ÚuniformÚint64r   r   ©ÚnodeÚ
input_dataÚposition_ids_dataÚsin_cache_dataÚcos_cache_dataÚexpected_outputs         ú\C:\Projects\Historical\venv\Lib\site-packages\onnx/backend/test/case/node/rotaryembedding.pyÚexport_rotary_embeddingz'RotaryEmbedding.export_rotary_embedding   s(  € åŒ{×$Ò$ØØFÐFÐFØ�Jð %ñ 
ô 
ˆõ ”Y—^’^ A q¨!¨QÑ/Ô/×6Ò6µr´zÑBÔBˆ
ÝœI×-Ò-¨a°°VÑ<Ô<×CÒCÅBÄHÑMÔMÐÝœŸš¨¨AÑ.Ô.×5Ò5µb´jÑAÔAˆÝœŸš¨¨AÑ.Ô.×5Ò5µb´jÑAÔAˆå*Ø˜¨ÐEVð
ñ 
ô 
ˆõ 	ØØ °Ð@QÐRØ$Ð%Ø(ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
ó    c                 óš  — d} t           j                             dg d¢dg| ¬¦  «        }t          j                             ddd¦  «                             t          j        ¦  «        }t          j                             d	d
d¦  «                             t          j	        ¦  «        }t          j                             d
d¦  «                             t          j        ¦  «        }t          j                             d
d¦  «                             t          j        ¦  «        }t          ||||| ¬¦  «        }t          |||||g|gd¬¦  «         d S )Nr   r   r   r   )r   r   Ú	num_headsr   r   é    r   r   r   )r   r4   Útest_rotary_embedding_3d_inputr   r   )r4   r*   r+   r,   r-   r.   r/   s          r0   Ú export_rotary_embedding_3d_inputz0RotaryEmbedding.export_rotary_embedding_3d_input'   s3  € àˆ	ÝŒ{×$Ò$ØØFÐFÐFØ�JØð	 %ñ 
ô 
ˆõ ”Y—^’^ A q¨"Ñ-Ô-×4Ò4µR´ZÑ@Ô@ˆ
ÝœI×-Ò-¨a°°VÑ<Ô<×CÒCÅBÄHÑMÔMÐÝœŸš¨¨AÑ.Ô.×5Ò5µb´jÑAÔAˆÝœŸš¨¨AÑ.Ô.×5Ò5µb´jÑAÔAˆå*ØØØØ*Øð
ñ 
ô 
ˆõ 	ØØ °Ð@QÐRØ$Ð%Ø1ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r2   c                 ó˜  — t           j                             dg d¢dgd¬¦  «        } t          j                             dddd	¦  «                             t          j        ¦  «        }t          j                             d
dd¦  «                             t          j	        ¦  «        }t          j                             dd¦  «                             t          j        ¦  «        }t          j                             dd¦  «                             t          j        ¦  «        }t          ||||d¬¦  «        }t          | ||||g|gd¬¦  «         d S )Nr   r   r   é   ©r   r   Úinterleavedr   r   r   r   r   r   r   )r   r;   Ú!test_rotary_embedding_interleavedr   r   r)   s         r0   Ú#export_rotary_embedding_interleavedz3RotaryEmbedding.export_rotary_embedding_interleavedE   s0  € åŒ{×$Ò$ØØFÐFÐFØ�JØð	 %ñ 
ô 
ˆõ ”Y—^’^ A q¨!¨QÑ/Ô/×6Ò6µr´zÑBÔBˆ
ÝœI×-Ò-¨a°°VÑ<Ô<×CÒCÅBÄHÑMÔMÐÝœŸš¨¨AÑ.Ô.×5Ò5µb´jÑAÔAˆÝœŸš¨¨AÑ.Ô.×5Ò5µb´jÑAÔAˆå*ØØØØ*Øð
ñ 
ô 
ˆõ 	ØØ °Ð@QÐRØ$Ð%Ø4ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r2   c                 ó˜  — t           j                             dg d¢dgd¬¦  «        } t          j                             dddd¦  «                             t          j        ¦  «        }t          j                             d	d
d¦  «                             t          j	        ¦  «        }t          j                             d
d¦  «                             t          j        ¦  «        }t          j                             d
d¦  «                             t          j        ¦  «        }t          ||||d¬¦  «        }t          | ||||g|gd¬¦  «         d S )Nr   r   r   r   ©r   r   Úrotary_embedding_dimr   r   r   r   r   r   )r   r@   Ú%test_rotary_embedding_with_rotary_dimr   r   r)   s         r0   Ú'export_rotary_embedding_with_rotary_dimz7RotaryEmbedding.export_rotary_embedding_with_rotary_dimb   s0  € åŒ{×$Ò$ØØFÐFÐFØ�JØ!"ð	 %ñ 
ô 
ˆõ ”Y—^’^ A q¨!¨QÑ/Ô/×6Ò6µr´zÑBÔBˆ
ÝœI×-Ò-¨a°°VÑ<Ô<×CÒCÅBÄHÑMÔMÐÝœŸš¨¨AÑ.Ô.×5Ò5µb´jÑAÔAˆÝœŸš¨¨AÑ.Ô.×5Ò5µb´jÑAÔAˆå*ØØØØ*Ø!"ð
ñ 
ô 
ˆõ 	ØØ °Ð@QÐRØ$Ð%Ø8ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r2   c                 óœ  — t           j                             dg d¢dgdd¬¦  «        } t          j                             dddd	¦  «                             t          j        ¦  «        }t          j                             d
dd¦  «                             t          j	        ¦  «        }t          j                             dd¦  «                             t          j        ¦  «        }t          j                             dd¦  «                             t          j        ¦  «        }t          ||||dd¬¦  «        }t          | ||||g|gd¬¦  «         d S )Nr   r   r   r   r9   )r   r   r@   r;   r   r   r   r   r   r   )r   r;   r@   Ú1test_rotary_embedding_with_interleaved_rotary_dimr   r   r)   s         r0   Ú3export_rotary_embedding_with_interleaved_rotary_dimzCRotaryEmbedding.export_rotary_embedding_with_interleaved_rotary_dim   s6  € åŒ{×$Ò$ØØFÐFÐFØ�JØ!"Øð %ñ 
ô 
ˆõ ”Y—^’^ A q¨!¨QÑ/Ô/×6Ò6µr´zÑBÔBˆ
ÝœI×-Ò-¨a°°VÑ<Ô<×CÒCÅBÄHÑMÔMÐÝœŸš¨¨AÑ.Ô.×5Ò5µb´jÑAÔAˆÝœŸš¨¨AÑ.Ô.×5Ò5µb´jÑAÔAˆå*ØØØØ*ØØ!"ð
ñ 
ô 
ˆõ 	ØØ °Ð@QÐRØ$Ð%ØDð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r2   c                 ó  — t           j                             dg d¢dg¬¦  «        } t          j                             dddd¦  «                             t          j        ¦  «        }t          j                             ddd¦  «                             t          j        ¦  «        }t          j                             ddd¦  «                             t          j        ¦  «        }t          |||¦  «        }t          | |||g|gd	¬
¦  «         d S )Nr   ©r   r   r   r   r   r   r   r   r   Ú%test_rotary_embedding_no_position_idsr   ©
r   r    r!   r"   r#   r$   r%   r&   r   r   ©r*   r+   r-   r.   r/   s        r0   Ú'export_rotary_embedding_no_position_idsz7RotaryEmbedding.export_rotary_embedding_no_position_idsž   sð   € åŒ{×$Ò$ØØ6Ð6Ð6Ø�Jð %ñ 
ô 
ˆõ ”Y—^’^ A q¨!¨QÑ/Ô/×6Ò6µr´zÑBÔBˆ
ÝœŸš¨¨1¨aÑ0Ô0×7Ò7½¼
ÑCÔCˆÝœŸš¨¨1¨aÑ0Ô0×7Ò7½¼
ÑCÔCˆå*¨:°~À~ÑVÔVˆåØØ °Ð?Ø$Ð%Ø8ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r2   c                 ó  — t           j                             dg d¢dgd¬¦  «        } t          j                             dddd	¦  «                             t          j        ¦  «        }t          j                             ddd¦  «                             t          j        ¦  «        }t          j                             ddd¦  «                             t          j        ¦  «        }t          |||d¬
¦  «        }t          | |||g|gd¬¦  «         d S )Nr   rG   r   r9   r:   r   r   r   r   )r;   Ú1test_rotary_embedding_no_position_ids_interleavedr   rI   rJ   s        r0   Ú3export_rotary_embedding_no_position_ids_interleavedzCRotaryEmbedding.export_rotary_embedding_no_position_ids_interleaved³   s  € åŒ{×$Ò$ØØ6Ð6Ð6Ø�JØð	 %ñ 
ô 
ˆõ ”Y—^’^ A q¨!¨QÑ/Ô/×6Ò6µr´zÑBÔBˆ
ÝœŸš¨¨1¨aÑ0Ô0×7Ò7½¼
ÑCÔCˆÝœŸš¨¨1¨aÑ0Ô0×7Ò7½¼
ÑCÔCˆå*ØØØØð	
ñ 
ô 
ˆõ 	ØØ °Ð?Ø$Ð%ØDð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r2   c                 ó  — t           j                             dg d¢dgd¬¦  «        } t          j                             dddd¦  «                             t          j        ¦  «        }t          j                             ddd¦  «                             t          j        ¦  «        }t          j                             ddd¦  «                             t          j        ¦  «        }t          |||d¬	¦  «        }t          | |||g|gd
¬¦  «         d S )Nr   rG   r   r   r?   r   r   r   )r@   Ú0test_rotary_embedding_no_position_ids_rotary_dimr   rI   rJ   s        r0   Ú2export_rotary_embedding_no_position_ids_rotary_dimzBRotaryEmbedding.export_rotary_embedding_no_position_ids_rotary_dimÎ   s  € åŒ{×$Ò$ØØ6Ð6Ð6Ø�JØ!"ð	 %ñ 
ô 
ˆõ ”Y—^’^ A q¨!¨QÑ/Ô/×6Ò6µr´zÑBÔBˆ
ÝœŸš¨¨1¨aÑ0Ô0×7Ò7½¼
ÑCÔCˆÝœŸš¨¨1¨aÑ0Ô0×7Ò7½¼
ÑCÔCˆå*ØØØØ!"ð	
ñ 
ô 
ˆõ 	ØØ °Ð?Ø$Ð%ØCð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r2   N)r	   r
   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr1   r7   r=   rB   rE   rK   rN   rQ   © r2   r0   r   r      s  € € € € € Øð
ð 
ð 
ñ „\ð
ð. ð
ð 
ð 
ñ „\ð
ð: ð
ð 
ð 
ñ „\ð
ð8 ð
ð 
ð 
ñ „\ð
ð8 ð
ð 
ð 
ñ „\ð
ð< ð
ð 
ð 
ñ „\ð
ð( ð
ð 
ð 
ñ „\ð
ð4 ð
ð 
ð 
ñ „\ð
ð 
ð 
r2   r   )Ú
__future__r   Únumpyr"   r   Úonnx.backend.test.case.baser   Úonnx.backend.test.case.noder   Ú&onnx.reference.ops.op_rotary_embeddingr   r   rV   r2   r0   ú<module>r\      s¢   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .Ø CÐ CÐ CÐ CÐ CÐ CðY
ð Y
ð Y
ð Y
ð Y
�dñ Y
ô Y
ð Y
ð Y
ð Y
r2   