§
    1�ÅjV;  ã                  óh   — d dl mZ d dlmZ d dlZd dlZd dlmZ d dl	m
Z
 d„ Z G d„ de¦  «        ZdS )	é    )Úannotations)ÚAnyN)ÚBase)Úexpectc                ón   — t          |¦  «        D ]$}|€g }|| d t          |dz   ¦  «        …         gz  }Œ%|S )Né   )ÚrangeÚint)ÚxÚseqÚ
trip_countÚis       úQC:\Projects\Historical\venv\Lib\site-packages\onnx/backend/test/case/node/loop.pyÚcompute_loop_outputsr      sI   € Ý�:ÑÔð !ð !ˆØˆ;ØˆCØ��,•C˜˜A™‘J”J�,”Ð Ñ ˆˆØ€Jó    c                  óV   — e Zd Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         ZdS )ÚLoopÚreturnÚNonec                 ó–	  — t           j                             dt           j        j        dg¦  «        } t           j                             dt           j        j        dg¦  «        }t           j                             dt           j        j        dg¦  «        }t           j                             dt           j        j        g ¦  «        }t           j                             dt           j        j        g ¦  «        }t           j                             dt           j        j        g ¦  «        }t          j        g d¢¦  «         	                    t          j
        ¦  «        }t          j        d	g¦  «         	                    t          j
        ¦  «        }t           j                             d
g dgt           j                             dt           j        j        |j        |                     ¦   «          	                    t          ¦  «        ¬¦  «        ¬¦  «        }t           j                             d
g dgt           j                             dt           j        j        ddg¬¦  «        ¬¦  «        }	t           j                             dddgdg¬¦  «        }
t           j                             ddgdgdg¬¦  «        }t           j                             ddgdgdg¬¦  «        }t           j                             dg d¢dg¬¦  «        }t           j                             dddgdg¬¦  «        }t           j                             ddgdg¬¦  «        }t           j                             ddgdg¬¦  «        }t           j                             |||	|
|||||g	d||| g|||g¦  «        }t           j                             dg d ¢d!d"g|¬#¦  «        }t          j        d$¦  «         	                    t          j        ¦  «        }t          j        d%g¦  «         	                    t          j
        ¦  «        }t          j        d¦  «         	                    t$          ¦  «        }t          j        g d&¢¦  «         	                    t          j
        ¦  «                             d'¦  «        }t)          ||||g||gd(t           j                             d)d*¦  «        g¬+¦  «         d S ),NÚy_inr   Úy_outÚscan_outÚcond_inÚcond_outÚ
iter_count©r   é   é   é   é   éþÿÿÿÚConstantr   Úconst_tensor_x©ÚnameÚ	data_typeÚdimsÚvals©ÚinputsÚoutputsÚvalueÚoneÚconst_tensor_one© ÚAddÚend©r+   r,   Ú	UnsqueezeÚslice_startr   )r+   r,   ÚaxesÚ	slice_endÚSlice©r   r5   r7   Ú	slice_outÚIdentityÚ	loop_bodyr   )r   ÚcondÚyÚres_yÚres_scan©r+   r,   Úbodyr!   é   )éÿÿÿÿr   r    é   rC   )r!   r   Útest_loop11Ú é   )r+   r,   r&   Úopset_imports)ÚonnxÚhelperÚmake_tensor_value_infoÚTensorProtoÚFLOATÚBOOLÚINT64ÚnpÚarrayÚastypeÚfloat32Ú	make_nodeÚmake_tensorÚshapeÚflattenÚfloatÚ
make_graphÚint64ÚboolÚreshaper   Úmake_opsetid)r   r   r   r   r   r   r   r>   Úx_const_nodeÚone_const_nodeÚ
i_add_nodeÚstart_unsqueeze_nodeÚend_unsqueeze_nodeÚ
slice_nodeÚ
y_add_nodeÚidentity_nodeÚscan_identity_noder<   Únoder   r?   r=   r@   s                          r   Úexport_loop_11zLoop.export_loop_11   s‚  € õ Œ{×1Ò1°&½$Ô:JÔ:PÐSTÐRUÑVÔVˆÝ”×2Ò2°7½DÔ<LÔ<RÐUVÐTWÑXÔXˆÝ”;×5Ò5Ø�Ô(Ô.°°ñ
ô 
ˆõ ”+×4Ò4Ø•tÔ'Ô,¨bñ
ô 
ˆõ ”;×5Ò5Ø�Ô(Ô-¨rñ
ô 
ˆõ ”[×7Ò7Ø�$Ô*Ô0°"ñ
ô 
ˆ
õ ŒH�_�_�_Ñ%Ô%×,Ò,­R¬ZÑ8Ô8ˆÝŒH�b�T‰NŒN×!Ò!¥"¤*Ñ-Ô-ˆå”{×,Ò,ØØØ�EÝ”+×)Ò)Ø%ÝÔ*Ô0Ø”WØ—Y’Y‘[”[×'Ò'­Ñ.Ô.ð	 *ñ ô ð	 -ñ 

ô 

ˆõ œ×.Ò.ØØØ�GÝ”+×)Ò)Ø'ÝÔ*Ô0ØØ�Sð	 *ñ ô ð	 /ñ 

ô 

ˆõ ”[×*Ò*Ø˜<¨Ð/¸%¸ð +ñ 
ô 
ˆ
õ  $œ{×4Ò4Ø  ¸¸ÈqÈcð  5ñ  
ô  
Ðõ "œ[×2Ò2Ø  °+°ÀaÀSð 3ñ 
ô 
Ðõ ”[×*Ò*ØÐ=Ð=Ð=ÈÀ}ð +ñ 
ô 
ˆ
õ ”[×*Ò*Ø˜6 ;Ð/¸'¸ð +ñ 
ô 
ˆ
õ œ×-Ò-Ø 	˜{°Z°Lð .ñ 
ô 
ˆõ "œ[×2Ò2Ø ˜y°:°,ð 3ñ 
ô 
Ðõ ”K×*Ò*àØØØØ$Ø"ØØØ"ð
ð Ø˜ $Ð'Ø�u˜hÐ'ñ
ô 
ˆ	õ" Œ{×$Ò$ØØ.Ð.Ð.Ø˜jÐ)Øð	 %ñ 
ô 
ˆõ ”X˜a‘[”[×'Ò'­¬Ñ1Ô1ˆ
Ý”˜"˜‘”×%Ò%¥b¤jÑ1Ô1ˆÝŒx˜‰{Œ{×!Ò!¥$Ñ'Ô'ˆÝ”8Ð-Ð-Ð-Ñ.Ô.×5Ò5µb´jÑAÔA×IÒIÈ&ÑQÔQˆÝØØ  aÐ(Ø˜HÐ%ØÝœ;×3Ò3°B¸Ñ;Ô;Ð<ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó
  ‡— t           j                             dt           j        j        d ¦  «        } t           j                             dt           j        j        d ¦  «        }t           j                             dt           j        j        g ¦  «        }t           j                             dt           j        j        g ¦  «        }t           j                             dt           j        j        g ¦  «        }t          j	        g d¢¦  «         
                    t          j        ¦  «        Št           j                             dg dgt           j                             d	t           j        j        ‰j        ‰                     ¦   «          
                    t           ¦  «        ¬
¦  «        ¬¦  «        }t           j                             dg dgt           j                             dt           j        j        ddg¬
¦  «        ¬¦  «        }t           j                             dg dgt           j                             dt           j        j        ddg¬
¦  «        ¬¦  «        }t           j                             dg dgt           j                             dt           j        j        ddg¬
¦  «        ¬¦  «        }t           j                             dddgdg¬¦  «        }	t           j                             dddgdg¬¦  «        }
t           j                             dg d¢dg¬¦  «        }t           j                             dddgdg¬¦  «        }t           j                             ddgdg¬¦  «        }t           j                             |||||	||
||g	d ||| g||g¦  «        }t           j                             d!g d"¢d#g|¬$¦  «        }t          j	        d%¦  «         
                    t          j        ¦  «        }g }ˆfd&„‰D ¦   «         }t          j	        d¦  «         
                    t&          ¦  «        }t)          ||||g|gd't           j                             d(d)¦  «        gt           j                             t           j        j        |j        ¦  «        t           j                             t           j        j        |j        ¦  «        t           j                             t           j                             t           j        j        g ¦  «        ¦  «        g¬*¦  «         d S )+NÚseq_inÚseq_outr   r   r   r   r#   r   r$   r%   r*   r.   r/   r0   r   r5   Úconst_tensor_zero©r   r   r6   Úconst_tensor_axesr1   r2   r3   r4   r7   r8   r9   r:   ÚSequenceInsertr;   r<   r   )r   r=   Ú	seq_emptyÚseq_resrA   r!   c                ó>   •— g | ]}‰d t          |¦  «        …         ‘ŒS )N)r
   )Ú.0r   r   s     €r   ú
<listcomp>z'Loop.export_loop_13.<locals>.<listcomp>ÿ   s'   ø€ Ð*Ð*Ð* 1�1�X•s˜1‘v”v�X”;Ð*Ð*Ð*r   Útest_loop13_seqrG   rC   ©r+   r,   r&   rI   Úinput_type_protos)rJ   rK   Úmake_tensor_sequence_value_inforM   rN   rL   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r   r^   Úmake_tensor_type_protoÚmake_sequence_type_proto)rk   rl   r   r   r   r_   r`   Úzero_const_nodeÚ	axes_nodeÚadd_noderc   rd   Úinsert_noderf   r<   rh   r   rq   rr   r=   r   s                       @r   Úexport_loop_13zLoop.export_loop_13‰   sÐ  ø€ õ ”×<Ò<Ø•dÔ&Ô,¨dñ
ô 
ˆõ ”+×=Ò=Ø•tÔ'Ô-¨tñ
ô 
ˆõ ”+×4Ò4Ø•tÔ'Ô,¨bñ
ô 
ˆõ ”;×5Ò5Ø�Ô(Ô-¨rñ
ô 
ˆõ ”[×7Ò7Ø�$Ô*Ô0°"ñ
ô 
ˆ
õ ŒH�_�_�_Ñ%Ô%×,Ò,­R¬ZÑ8Ô8ˆå”{×,Ò,ØØØ�EÝ”+×)Ò)Ø%ÝÔ*Ô0Ø”WØ—Y’Y‘[”[×'Ò'­Ñ.Ô.ð	 *ñ ô ð	 -ñ 

ô 

ˆõ œ×.Ò.ØØØ�GÝ”+×)Ò)Ø'ÝÔ*Ô0ØØ�Sð	 *ñ ô ð	 /ñ 

ô 

ˆõ œ+×/Ò/ØØØ"�OÝ”+×)Ò)Ø(ÝÔ*Ô0ØØ�Sð	 *ñ ô ð	 0ñ 

ô 

ˆõ ”K×)Ò)ØØØ�HÝ”+×)Ò)Ø(ÝÔ*Ô0ØØ�Sð	 *ñ ô ð	 *ñ 

ô 

ˆ	õ ”;×(Ò(Ø˜<¨Ð/¸%¸ð )ñ 
ô 
ˆõ "œ[×2Ò2Ø ¨ ¸+¸ð 3ñ 
ô 
Ðõ ”[×*Ò*ØÐ=Ð=Ð=ÈÀ}ð +ñ 
ô 
ˆ
õ ”k×+Ò+Ø h°Ð%<ÀyÀkð ,ñ 
ô 
ˆõ œ×-Ò-Ø 	˜{°Z°Lð .ñ 
ô 
ˆõ ”K×*Ò*àØØØØØØ"ØØð
ð Ø˜ &Ð)Ø�wÐñ
ô 
ˆ	õ" Œ{×$Ò$ØØ6Ð6Ð6Ø�KØð	 %ñ 
ô 
ˆõ ”X˜a‘[”[×'Ò'­¬Ñ1Ô1ˆ
Ø!ˆ	Ø*Ð*Ð*Ð*¨Ð*Ñ*Ô*ˆÝŒx˜‰{Œ{×!Ò!¥$Ñ'Ô'ˆÝØØ  iÐ0Ø�IØ"Ýœ;×3Ò3°B¸Ñ;Ô;Ð<å”×2Ò2ÝÔ$Ô*¨JÔ,<ñô õ ”×2Ò2µ4Ô3CÔ3HÈ$Ì*ÑUÔUÝ”×4Ò4Ý”K×6Ò6µtÔ7GÔ7MÈrÑRÔRñô ðð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó  — t           j                             t           j        j        g ¦  «        } t           j                             | ¦  «        }t           j                             |¦  «        }t           j                             d|¦  «        }t           j                             dt           j        j        g ¦  «        }t           j         	                    dt           j        j
        g ¦  «        }t           j         	                    dt           j        j
        g ¦  «        }t           j         	                    dt           j        j        g ¦  «        }t          j        d¦  «                             t          j        ¦  «        }t          j        g d¢¦  «                             t          j        ¦  «        }	t           j                             ddgd	g¬
¦  «        }
t           j                             dd	gdg¬
¦  «        }t           j                             ddgdg¬
¦  «        }t           j                             dg dgt           j                             dt           j        j        ddg¬¦  «        ¬¦  «        }t           j                             ddgdg¬
¦  «        }t           j                             dt           j        j        g ¦  «        }t           j                             ||gdg |g¦  «        }t           j                             dt           j        j        g ¦  «        }t           j                             |gdg |g¦  «        }t           j                             ddgdg||¬¦  «        }t           j                             dg dgt           j                             dt           j        j        |	j        |	                     ¦   «                              t*          ¦  «        ¬¦  «        ¬¦  «        }t           j                             dg dgt           j                             dt           j        j        dd g¬¦  «        ¬¦  «        }t           j                             dg d!gt           j                             d"t           j        j        d#dg¬¦  «        ¬¦  «        }t           j                             dg d$gt           j                             d%t           j        j        ddg¬¦  «        ¬¦  «        }t           j                             d&ddgd'g¬
¦  «        }t           j                             d(d'd$gd)g¬
¦  «        }t           j                             d*g d+¢d,g¬
¦  «        }t           j                             d-dd,gdg¬
¦  «        }t           j                             d.dgdg¬
¦  «        }t           j                             ||
||||||||||gd/|||g||g¦  «        }t           j                             d0g d1¢d2g|¬3¦  «        }t          j        d4¦  «                             t          j        ¦  «        }t          j        d ¦  «                             t.          ¦  «        } t1          |	|g|¦  «        }!|g}"t3          ||| |"g|!gd5t           j                             d6d7¦  «        gt           j                             t           j        j        |j        ¦  «        t           j                             t           j        j
        | j        ¦  «        |g¬8¦  «         d S )9NÚ
opt_seq_inrl   r   r   r   r   r   ÚOptionalHasElementÚoptional_has_elemr3   ÚNotÚoptional_is_noneÚOptionalGetElementrk   r#   Úconstant_inÚconst_tensorr0   r%   r*   ÚSequenceConstructÚinit_seq_inÚ	then_bodyÚ	else_bodyÚIfÚsequence)r+   r,   Úthen_branchÚelse_branchr   r$   r.   r/   r   r5   rm   rn   r6   ro   r1   r2   r4   r7   r8   r9   r:   rp   r;   r<   r   )r   r=   Úopt_seqrr   rA   r!   Útest_loop16_seq_nonerG   é   rw   )rJ   rK   rz   rM   rN   r{   Úmake_optional_type_protoÚmake_value_infory   rL   rO   rP   rQ   rR   rS   rT   rU   rV   rZ   rW   rX   rY   r[   r\   r   r   r^   )#Ú	ten_in_tpÚ	seq_in_tpÚ	opt_in_tpÚopt_inrl   r   r   r   Úx0r   Úoptional_has_elem_noder†   Úoptional_get_elemrˆ   Úseq_const_inÚthen_seq_outrŒ   Úelse_seq_outr�   Úif_noder_   r`   r|   r}   r~   rc   rd   r   rf   r<   rh   r   r=   rr   r‚   s#                                      r   Úexport_loop_16_nonezLoop.export_loop_16_none  sÍ  € õ ”K×6Ò6µtÔ7GÔ7MÈrÑRÔRˆ	Ý”K×8Ò8¸ÑCÔCˆ	Ý”K×8Ò8¸ÑCÔCˆ	Ý”×,Ò,¨\¸9ÑEÔEˆÝ”+×=Ò=Ø•tÔ'Ô-¨rñ
ô 
ˆõ ”+×4Ò4Ø•tÔ'Ô,¨bñ
ô 
ˆõ ”;×5Ò5Ø�Ô(Ô-¨rñ
ô 
ˆõ ”[×7Ò7Ø�$Ô*Ô0°"ñ
ô 
ˆ
õ ŒX�a‰[Œ[×Ò¥¤
Ñ+Ô+ˆÝŒH�_�_�_Ñ%Ô%×,Ò,­R¬ZÑ8Ô8ˆå!%¤×!6Ò!6Ø ¨,¨ÐBUÐAVð "7ñ "
ô "
Ðõ  œ;×0Ò0ØÐ.Ð/Ð:LÐ9Mð 1ñ 
ô 
Ðõ !œK×1Ò1Ø ¨,¨À(Àð 2ñ 
ô 
Ðõ ”k×+Ò+ØØØ"�OÝ”+×)Ò)Ø#­tÔ/?Ô/EÈBÐVWÐUXð *ñ ô ð	 ,ñ 
ô 
ˆõ ”{×,Ò,Ø¨¨À-Àð -ñ 
ô 
ˆõ ”{×BÒBØ�4Ô+Ô1°2ñ
ô 
ˆõ ”K×*Ò*Ø˜,Ð'¨°b¸<¸.ñ
ô 
ˆ	õ ”{×BÒBØ•dÔ&Ô,¨bñ
ô 
ˆõ ”K×*Ò*ØÐ ¨b°<°.ñ
ô 
ˆ	õ ”+×'Ò'ØØ&Ð'Ø�LØ!Ø!ð (ñ 
ô 
ˆõ ”{×,Ò,ØØØ�EÝ”+×)Ò)Ø%ÝÔ*Ô0Ø”WØ—Y’Y‘[”[×'Ò'­Ñ.Ô.ð	 *ñ ô ð	 -ñ 

ô 

ˆõ œ×.Ò.ØØØ�GÝ”+×)Ò)Ø'ÝÔ*Ô0ØØ�Sð	 *ñ ô ð	 /ñ 

ô 

ˆõ œ+×/Ò/ØØØ"�OÝ”+×)Ò)Ø(ÝÔ*Ô0ØØ�Sð	 *ñ ô ð	 0ñ 

ô 

ˆõ ”K×)Ò)ØØØ�HÝ”+×)Ò)Ø(ÝÔ*Ô0ØØ�Sð	 *ñ ô ð	 *ñ 

ô 

ˆ	õ ”;×(Ò(Ø˜<¨Ð/¸%¸ð )ñ 
ô 
ˆõ "œ[×2Ò2Ø ¨ ¸+¸ð 3ñ 
ô 
Ðõ ”[×*Ò*ØÐ=Ð=Ð=ÈÀ}ð +ñ 
ô 
ˆ
õ ”k×+Ò+Ø j°+Ð%>ÈÈð ,ñ 
ô 
ˆõ œ×-Ò-Ø 	˜{°Z°Lð .ñ 
ô 
ˆõ ”K×*Ò*àØ&Ø ØØØØØØØ"ØØðð Ø˜ &Ð)Ø�wÐñ#
ô 
ˆ	õ( Œ{×$Ò$ØØ4Ð4Ð4Ø�KØð	 %ñ 
ô 
ˆõ ”X˜a‘[”[×'Ò'­¬Ñ1Ô1ˆ
ÝŒx˜‰{Œ{×!Ò!¥$Ñ'Ô'ˆÝ& q¨2¨$°
Ñ;Ô;ˆØ!# ˆ
ÝØØ  jÐ1Ø�IØ'Ýœ;×3Ò3°B¸Ñ;Ô;Ð<å”×2Ò2ÝÔ$Ô*¨JÔ,<ñô õ ”×2Ò2µ4Ô3CÔ3HÈ$Ì*ÑUÔUØðð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r   N)r   r   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodri   r€   r¢   r0   r   r   r   r      s‚   € € € € € Øðn
ð n
ð n
ñ „\ðn
ð` ðF
ð F
ð F
ñ „\ðF
ðP ðx
ð x
ð x
ñ „\ðx
ð x
ð x
r   r   )Ú
__future__r   Útypingr   ÚnumpyrQ   rJ   Úonnx.backend.test.case.baser   Úonnx.backend.test.case.noder   r   r   r0   r   r   ú<module>r¬      s±   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à Ð Ð Ð à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ðt
ð t
ð t
ð t
ð t
ˆ4ñ t
ô t
ð t
ð t
ð t
r   