
    JTh^                       S r SSKJr  SSKrSSKrSSKrSSKJr  SSKrSSKJ	r	  SSK
Jr  SSKJrJrJrJrJrJr  SSKJrJr  \(       a  SS	KJr  / S
Qr\R8                  " \R:                  SS9r\" S5      \R>                  " S5      \R@                  " SSS5      SS j5       5       5       r!\" S5      SS j5       r"\" S5      \R@                  " SS5      SS j5       5       r#\" S5      \R@                  " SS5      SS j5       5       r$\" S5      SS j5       r%\" S5      \R>                  " S5      \R@                  " SSS5      SS j5       5       5       r&\" S5       S SS jj5       r'\" S 5      \R@                  " SS5      SS! j5       5       r(\" S"\RR                  " S#S$S%5      /S&9\" S'\RR                  " S(S)S%5      /S&9\" S*\RR                  " S+S,S%5      /S&9\" S-\RR                  " S.S$S/5      /S&9\" S0\RR                  " S1S)S/5      /S&9\" S2\RR                  " S3S,S/5      /S&9\" S4\RR                  " S5S)S65      /S&9SS7 j5       5       5       5       5       5       5       r*\" S85      \R>                  " SSSSSSS5        SS9 j5       5       r+\" S:5      \R@                  " SSSS5      SSS; jj5       5       r,\" S<5      \R@                  " SSSS5      SS= j5       5       r-\" S>5      \R@                  " SSS?5      SSS@ jj5       5       r.\" SA5      SSB j5       r/\" SC5      SSD j5       r0\" SE5      SSF j5       r1\" SG5      SSH j5       r2\" SI5      SSJ j5       r3\" SK5      SSL j5       r4\" SM5      SSSN jj5       r5\" SO5      SSP j5       r6\" SQ5      SSR j5       r7\" SS5      SST j5       r8\" SU5      \R>                  " S5      SSV j5       5       r9\" SW5      SSX j5       r:\" SY5      \R@                  " SSSS5      SSZ j5       5       r;\" S[5      \R@                  " SSSSS5        SS\ j5       5       r<\" S]5      \R@                  " SSSSSS?5      SSS^ jj5       5       r=\" S_5      \R@                  " SSSS?5      SSS` jj5       5       r>\" Sa5      \R@                  " SSSS?5      SSSb jj5       5       r?\" Sc5      \R@                  " SS5      SSSd jj5       5       r@\" Se5      SSf j5       rA\" Sg5      \R@                  " SSSS5      SSSh jj5       5       rB\" Si5      \R@                  " SSSS5      SSSj jj5       5       rC\" Sk5      \R@                  " SSS5      SSSl jj5       5       rDSSm jrE\" Sn5      SSSo jj5       rF\" Sp5      \" Sq5      \" Sr5      SSs j5       5       5       rG\" St5      \" Su5      \" Sv5      SSw j5       5       5       rH\" Sx5                SSy j5       rI\" Sz5      SS{ j5       rJ\" S|5      SS} j5       rK\" S~5      SS j5       rL\" S5      \R@                  " SS5      SS j5       5       rM\" S5      \R>                  " SSS9SSS jj5       5       rN\" S5      SSS jj5       rO\" S5      SS j5       rP\" S5      SS j5       rQ\" S5      SS j5       rR\" S5      SS j5       rS\" S5      SS j5       rT\" S5      \" S5      SS j5       5       rU\" S5      \" S5      SS j5       5       rV  SS jrWSS jrXSS jrY\" S5      \R@                  " SSSSS5      SS j5       5       rZ\" S5      SS j5       r[\" S5      \R>                  " SSS5      \R@                  " SSS5      SS j5       5       5       r\\" S5      \R@                  " SSSSS5            SS j5       5       r]\" S5      \R@                  " SSSSSSSSS5	        SS j5       5       r^\" S5      \R@                  " SSSS5      SS j5       5       r_\" S5      SS j5       r`\" S5            S SS jj5       ra\" S5      SS j5       rb\" S5      SS j5       rc\" S5      SS j5       rd\" S5      SS j5       re\" S5      SS j5       rf\" S5      SS j5       rgg)z(This file exports ONNX ops for opset 11.    )annotationsN)TYPE_CHECKING)_C)_onnx)_type_utilserrorssymbolic_helpersymbolic_opset10symbolic_opset9utils)	jit_utilsregistration)Sequence)9addappendarangeargsort
atleast_1d
atleast_2d
atleast_3dcatchunk	clamp_max	clamp_minclampconstant_pad_ndcumsumDeleteembedding_bagembedding_renormflattengatherhardtanhhstackim2col
index_fillindex
index_copy	index_putinsert
linalg_detlinalg_vector_normlogdetmasked_scattermasked_selectmmnarrownormalpadpixel_shufflepopprim_constant_chunkreflection_padrelu6	remainderreplication_padroundscatterselectsizesortsplit_with_sizessplitsqueezestacktopkunbind
unique_dim	unsqueezevstack   )opsetzaten::hardtanhTvfc           	     b   [         R                  R                  U[         R                  R                  5      nU R	                  S[
        R                  " X$R                  5       S9S9nU R	                  S[
        R                  " X4R                  5       S9S9n[        R                  " U SXUSS9$ )NConstantdtypevalue_tClip   opset_before)
r   JitScalarType
from_valueFLOAToptorchtensorrP   r	   _op_with_optional_float_cast)gselfmin_valmax_valscalar_types        S/var/www/auris/envauris/lib/python3.13/site-packages/torch/onnx/symbolic_opset11.pyr#   r#   `   s     ++66k''--K ddW,=,=,?@  G ddW,=,=,?@  G 77	64'     zaten::clampc           	     >  ^  U 4S jn[         R                  R                  U[         R                  R                  5      nU[         R                  R                  :w  a  U" X%5      nU" X55      n[        R
                  " U5      (       a  [        T X5      $ [        R
                  " U5      (       a  [        T X5      $ [        R                  " U5      S:X  a2  [        R                  " U5      S:X  a  [        R                  " T SXUSS9$ [        T [        T X5      U5      $ )Nc                   > U b:  [         R                  " U 5      (       d  TR                  SU UR                  5       S9$ U $ )NCastto_i)r	   _is_nonerZ   	onnx_type)r\   rP   r^   s     rc   _cast_if_not_none clamp.<locals>._cast_if_not_nonev   sF    o&>&>v&F&F44__&    Mrd   r   rS   rT   rU   )
r   rW   rX   	UNDEFINEDr	   rj   r   r   _get_tensor_rankr]   )r^   r_   minmaxrl   rb   s   `     rc   r   r   t   s     ++66k''11K k//99911$$D&&		!	!#	&	&D&& ,,S1Q6005:"??64c  Q	!T 7==rd   zaten::clamp_minc           	     8   U R                  SU[        R                  R                  U5      R	                  5       S9n[
        R                  " U5      S:X  a.  [        R                  " U 5      n[
        R                  " U SXUSS9$ [
        R                  " U SXSS9$ )Nrg   rh   r   rS   rT   rU   Max
rZ   r   rW   rX   rk   r	   ro   opset9unusedr]   )r^   r_   rp   rq   s       rc   r   r           $$vs!:!:!E!Ed!K!U!U!W$
XC'',1mmA;;vt#B
 	
 ;;udb
 	
rd   zaten::clamp_maxc           	     8   U R                  SU[        R                  R                  U5      R	                  5       S9n[
        R                  " U5      S:X  a.  [        R                  " U 5      n[
        R                  " U SXUSS9$ [
        R                  " U SXSS9$ )Nrg   rh   r   rS   rT   rU   Minrt   )r^   r_   rq   rp   s       rc   r   r      rw   rd   zaten::relu6c                N   [         R                  R                  U[         R                  R                  5      nU R	                  S[
        R                  " SUR                  5       S9S9nU R	                  S[
        R                  " SUR                  5       S9S9n[        XX45      $ )NrN   r   rO   rQ      )	r   rW   rX   rY   rZ   r[   r\   rP   r   )r^   inputrb   r`   ra   s        rc   r8   r8      s    ++66{((..K ddQk&7&7&9:  G ddQk&7&7&9:  G 7,,rd   zaten::selectic                $    U R                  SXUS9$ )NGatheraxis_irZ   )r^   r_   dimr'   s       rc   r=   r=      s    
 44$c422rd   zaten::index_putFc                d   [         R                  " U5      (       a  [         R                  " U5      nOU/n[         R                  " US5      n[	        U5      S:X  a  U$ [	        U5      S:  a  [        [	        U5      5       H8  n[         R                  " XV   5      (       d  M"  U R                  SXV   5      XV'   M:     US   nUSS   H  n[        R                  " XU5      nM     U R                  SU5      n	U Vs/ s H2  n[         R                  " U [        R                  " XU	S 5      S/5      PM4     nnU R                  " S/UQ7SS06nOUS   nUn
[         R                  " U
5      (       a  [         R                  " U5      nUb  US:X  a  [        R                  " XX5      $ [         R                  " U
5      n[         R                  " U5      nUb1  Ub.  X:  a)  [         R                  " X
[        [        X5      5      5      n
[        XX5      $ U R                  SU5      n	[         R                  " XS/5      n[         R                   " X R                  SU5      S/[	        U5      /["        R$                  /S	9nU R                  SXSS
9n[         R                  " U5      nUb  US:X  a  [        R                  " XUS 5      n[         R&                  " XU5      n[(        R*                  R-                  U[(        R*                  R.                  5      nU[(        R*                  R.                  :w  a^  [(        R*                  R-                  U[(        R*                  R.                  5      nUU:w  a  U R                  SUUR1                  5       S9nOU(       a  [2        R4                  " SU5      eU(       ad  U R                  SU R                  SU5      [6        R8                  " S/UR;                  5       S9S9nU R                  SUXs5      n[        XU5      nU$ U R                  SXU5      nU$ s  snf )Nbr      NonZeroShapeConcatr   axesstartsendsr   rg   rh   z'self does not have a valid scalar type.ConstantOfShaperO   rQ   	ScatterND)r	   _is_packed_list_unpack_list
_parse_arglenrange_is_boolrZ   ru   r   _unsqueeze_helperexpandro   masked_filllistr.   _slice_helpersysmaxsize_reshape_helperr   rW   rX   rn   rk   r   SymbolicValueErrorr[   r\   rP   )r^   r_   indices_list_valuevalues
accumulateindices_listidx_r'   indbroadcast_index_shapebool_inprank	mask_rank	self_ranksub_data_shapevalues_shapeself_scalar_typevalues_scalar_typezerosresults                       rc   r)   r)      s    &&'9::&334FG*+ ++J<J
<A
<1#l+,D''(:;;%&TT)\5G%H" - Q#CJJq-E $ !We 4
 $	
 $ --6==)>Et $	 	 
 X88R8P Q##H--"33F;DDAI))!8DD'88BI'88>I%)) +<<eI&A!B "!8<< !We 411!RDA$22	44aS#l2C1DCKK=N 44"7PQ4RL++F3DDAIq,=,,QEF"00;;k''11 ;44>>>(66AAK--77
 11TT&&/?/I/I/KTLF	''(QSWXXDD$LL!,<,B,B,DE  

 k5%8Qf% M k47MG
s   ;9P-zaten::pixel_shufflec                    [         R                  " U5      nUb  US:w  a  [         R                  " SS5      $ U R                  SXSS9$ )N   r4   zonly support 4d inputDepthToSpaceCRD)blocksize_imode_s)r	   ro   _unimplementedrZ   )r^   r_   upscale_factorr   s       rc   r4   r4   I  sI     ++D1DDAI--o?VWW444OOrd   zaten::upsample_nearest1dupsample_nearest1d   nearest)decoratezaten::upsample_nearest2dupsample_nearest2dr   zaten::upsample_nearest3dupsample_nearest3d   zaten::upsample_linear1dupsample_linear1dlinearzaten::upsample_bilinear2dupsample_bilinear2dzaten::upsample_trilinear3dupsample_trilinear3dzaten::upsample_bicubic2dupsample_bicubic2dcubicc                0    [         R                  " XU5      $ N)r	   _interpolate_helper)namer   interpolate_modes      rc   _interpolater   R  s    : ..t:JKKrd   zaten::__interpolatec           	     4    [         R                  " XX#XEU5      $ r   )r	   __interpolate_helper)r^   r|   r>   scale_factormodealign_cornersrecompute_scale_factor	antialiass           rc   __interpolater   r  s!     //	$d;Q rd   zaten::gatherc                    [         R                  " US5      (       a  [         R                  " SS5      $ U R                  SXUS9$ )Nr}   r"   zsparse_grad == TrueGatherElementsr   )r	   _maybe_get_constr   rZ   )r^   r_   r   r'   sparse_grads        rc   r"   r"     sA     ''S99--h8MNN44 $c4::rd   zaten::scatterc           
        [         R                  R                  U5      n[        R                  " U5      n[        R
                  " U5      (       a  U R                  SXXBS9$ [         R                  R                  U5      U:w  a<  U R                  SU[         R                  R                  U5      R                  5       S9nU R                  SX[        R                  " XU5      US9$ )NScatterElementsr   rg   rh   )
r   rW   rX   r	   _maybe_get_scalar	_is_valuerZ   rk   ru   	expand_as)r^   r_   r   r'   srcsrc_types         rc   r<   r<     s     ((33C8H

+
+C
0C  %%tt%tCtDD $$//5A$$ ..99$?IIK  C
 tttF,<,<QU,KTW  
 	
rd   zaten::cumsumnonec                z   U R                  S[        R                  " U[        R                  S9S9nU(       an  UR	                  5       R                  5       S:w  aL  [        R                  " USS5      nU R                  SU[        R                  " U5      R                  5       S9nOUnU R                  S	Xd5      nU$ )
NrN   rO   rQ   zprim::Constantr}   rP   rg   rh   CumSum)rZ   r[   r\   intnodekindr	   
_get_constr   rW   rk   )r^   r_   r   rP   
dim_tensorparsed_dtypecastcsums           rc   r   r     s     j%,,s%))*LMJ""$(88&11%gFttD{88FPPR  
 44$+DKrd   zaten::masked_selectc                ~    [         R                  " U [         R                  " XU5      5      nU R                  SX5      $ )NGatherND)ru   nonzeror   rZ   )r^   r_   maskr'   s       rc   r/   r/     s0    NN1f..q=>E44
D((rd   zaten::masked_scatterc                   [         R                  " U [         R                  " XU5      5      n[        R                  " X[
        R                  " S/5      5      n[        R                  " U U[
        R                  " S/5      [
        R                  " S/5      [         R                  " X[
        R                  " S/5      5      S9nU R                  SXU5      $ )Nr   r   r   r   )
ru   r   r   r	   r   r[   
LongTensorr   r>   rZ   )r^   r_   r   sourcer'   s        rc   r.   r.     s    NN1f..q=>E ,,Q8H8H"8NOF**	qc"$[[5#3#3QC#89F 44T&11rd   z	aten::lenc           
     .   [         R                  " U5      (       d"  UR                  5       R                  5       S:X  a  U R	                  SU5      $ [        XU R	                  S[        R                  " S/5      S95      n[         R                  " XS/5      $ )Nzonnx::SplitToSequenceSequenceLengthrN   r   rQ   )	r	   _is_tensor_listr   r   rZ   r>   r[   r   _squeeze_helper)r^   r_   sz_0s      rc   _lenr     sz     	''--99;!88tt$d++j%2B2BA32GHID**1QC88rd   zaten::__getitem_c                z    [         R                  " U5      (       a  U R                  SX5      $ SSKJn  U" XU5      $ )N
SequenceAtr   )
__getitem_)r	   r   rZ   torch.onnx.symbolic_opset9r   )r^   r_   r}   getitems       rc   r   r     s4    &&t,,ttL$**Dq""rd   zaten::_set_itemc                L    U R                  SX5      nU R                  SXU5      $ )NSequenceEraseSequenceInsertr   )r^   tensor_listr}   rK   s       rc   	_set_itemr     s&    $$7K44 +!44rd   zaten::appendc                &    U R                  SX5      $ Nr   r   )r^   r_   r\   s      rc   r   r     s    44 $//rd   z	aten::addc                |   [         R                  " U5      (       a  [         R                  " U5      (       ap  UR                  5       nUR	                  5       S:w  a  [         R
                  " SS5      $ [         R                  " U5      nUnU H  nU R                  SXg5      nM     U$ [        R                  " XX#5      $ )Nzprim::ListConstructr   z6does not support adding dynamic tensor list to anotherr   )
r	   r   r   r   r   r   r   rZ   ru   r   )r^   r_   otheralphatensor_list_nodetensorslts           rc   r   r     s      &&?+J+J4+P+P ::<  "&;;"11O  "..u5A%q,A ::au,,rd   zaten::insertc                (    U R                  SXU5      $ r  r   )r^   r_   posr\   s       rc   r*   r*     s    44 $44rd   z	aten::popc                &    U R                  SX5      $ Nr   r   r^   r   r   s      rc   r5   r5         4422rd   zaten::Deletec                &    U R                  SX5      $ r  r   r  s      rc   r   r     r  rd   z	aten::catc                    [         R                  " U5      (       a  [        R                  " XU5      $ [         R                  " USS5      nU R                  SXS9$ )Nr}   r   ConcatFromSequencer   )r	   r   ru   r   r   rZ   r  s      rc   r   r     sN     &&{33zz!#..((c59tt(+tBBrd   zaten::stackc                    [         R                  " U5      (       a  [        R                  " XU5      $ [         R                  " USS5      nU R                  SXSS9$ )Nr}   r   r  r   r   
new_axis_i)r	   r   ru   rC   r   rZ   r  s      rc   rC   rC     sN    &&{33||AC00((c59tt(+atPPrd   zaten::_unique2c                2    U R                  SXSS9u  pVpxXWU4$ )NUniquer   )sorted_ioutputsr   )	r^   r_   sortedreturn_inversereturn_countsu_indicesinverse_indicescountss	            rc   _unique2r!    s0     ,-44$ ,0 ,(A v%%rd   zaten::unique_dimc                4    U R                  SXUSS9u  pgpXhU	4$ )Nr  r   )r   r  r  r   )
r^   r_   r   r  r  r  r  r  r  r   s
             rc   rF   rF   #  s2    
 ,-44$VQ ,0 ,(A v%%rd   z
aten::topkc           
     0    [         R                  " XX#XEUS9$ )N)largestr  out)r	   _topk_helper)r^   r_   kr   r$  r  r%  s          rc   rD   rD   .  s      ''	S rd   z
aten::sortc                .    [         R                  " XX#US9$ N)	decendingr%  r	   _sort_helper)r^   r_   r   r*  r%  s        rc   r?   r?   6  s     ''sSSrd   zaten::argsortc                6    [         R                  " XX#US9u  pVU$ r)  r+  )r^   r_   r   r*  r%  _indicess          rc   r   r   <  s$     !--	sJA Nrd   zaten::roundc                   [         R                  " U5      (       d  U$ US:X  a  U R                  SU5      $ U R                  SXR                  S[        R                  " [        SU5      5      S95      nU R                  SU5      nU R                  SX@R                  S[        R                  " [        SSU-  5      5      S95      $ )Nr   RoundMulrN   
   rQ   r   )r	   _is_fprZ   r[   r\   pow)r^   r_   decimalsmulr;   s        rc   r;   r;   E  s     !!$''1}ttGT""
$$udDDU\\#b(BS5TDU
VCDD#E44udd:u||CBM<R/SdT rd   zaten::remainderc                    [         R                  " U5      (       d  [         R                  " U5      (       a  [        R                  " XU5      $ U R	                  SXSS9$ )NModr   )fmod_i)r	   r4  ru   r9   rZ   )r^   r|   r  s      rc   r9   r9   S  sK    e$$(>(>u(E(E%0044uA4..rd   zaten::splitc                   [         R                  " X$5      (       Gd  U R                  SXUS9nUc  U$ [         R                  " U5      (       Ga  [	        [         R
                  " U5      5      U:X  a  [         R
                  " U5       Vs/ s H  n[         R                  " XS/5      PM     nnU R                  S[        R                  " S/[        R                  S9S9nU R                  S[        R                  " U/[        R                  S9S9n	/ n
[        U5       H<  nU R                  SXU   5      nU
R                  U R                  SXX5      5        UnM>     U
$ [        U5       Vs/ s HF  nU R                  S	UU R                  S[        R                  " U/[        R                  S9S95      PMH     sn$ [        R                  " XX#U5      $ s  snf s  snf )
NSplitToSequencer   r   rN   rO   rQ   AddSlicer   )r	   _is_split_staticrZ   r   r   r   r   r[   r\   longr   r   ru   rA   )r^   r_   split_size_or_sizesr   _outputs	split_outrK   split_sizesstartaxisresr}   ends                rc   rA   rA   Z  s    ++,?JJDD*DcDR	 ++,?@@O001DEF(R )556IJJA  11!<J   DDU\\1#UZZ-PDQE44
ELL#ejj,Q4RDC8_dd5a. 

144c@A % J 8_
 % DDZqc)LM
 %
 	
 ||A%8xHH/
s   
"G.AGzaten::split_with_sizesc                    [        XX#U5      $ r   )rA   )r^   r_   rD  r   rB  s        rc   r@   r@     s     +H55rd   zaten::unbindc                    UcB  U R                  SUU R                  S[        R                  " S[        R                  S9S9USS9$ [        R
                  " XX#5      $ )Nr<  rN   r   rO   rQ   r   )r   
keepdims_i)rZ   r[   r\   r@  ru   rE   )r^   r_   r   rB  s       rc   rE   rE     s^     ttDDU\\!5::%FDG  
 	
 }}Qc44rd   c                $   [         R                  " U5      (       dH  [         R                  " U5      (       a-  [         R                  " U5      (       a  U R	                  SUSSS9n[
        R                  " XU R	                  S[        R                  " S/5      S95      n[         R                  " U5      nUc#  U R	                  SU R	                  SU5      5      nO1U R	                  S[        R                  " U[        R                  S	9S9nU R	                  S
U R	                  SX@R	                  S[        R                  " S[        R                  S	9S95      U5      nU R	                  SU[        R                  R                  S9nU R	                  SUU R	                  SU[        R                  " S/[        R                  S	9S9SS9n[         R                  " XU R	                  S[        R                  " SS/5      S95      nU R	                  S[        R                   " XS/5      SS/S9n[         R                  " XU R	                  S[        R                  " S/5      S95      nU R	                  SU[        R                  R                  S9nU$ )a	  Generate paddings in ONNX order based on pad in pytorch.

Args:
    input: the input tensor.
    pad: the paddings in pytorch.
        The order is dim_n_begin, dim_n_end, dim_n-1_begin, dim_n-1_end, ..., dim_m_begin, dim_m_end,
        where m is in range [0, n].
r  r   r   r  rN   rQ   Sizer   rO   Subr2     rg   rh   r   r   r   r   	Transposeperm_i)r	   r   _is_list_is_scalar_listrZ   ru   r>   r[   r\   ro   int64_C_onnxTensorProtoDataTypeINT64r   opset10flip)r^   r|   r3   pad_lenr   	extensionpaddings	padding_cs           rc   _prepare_onnx_paddingsr_    s    ++C00$$S))++C00dd'Q1dE
 kk!!$$z5<<;L$"MNG++E2D|ttFADD%01ttJT(MtN	UD$$z5<<3U$VWI $$vs!<!<!B!B$
CCtt	y%,,s%++2V 	 	
   H ..	QTT*ellB7.CTDH ttKaA3!?AtOH..	QTT*ellB4.@TAH VXG,G,G,M,MNIrd   zaten::constant_pad_ndc                    Sn[         R                  " U5      n[         R                  " X15      n[        XU5      nU R	                  SXX4S9$ )NconstantPadr   )r	   r   _if_scalar_type_asr_  rZ   )r^   r|   paddingvaluer   r3   s         rc   r   r     sH    D--e4E..u<E
 7
3C44u5466rd   zaten::reflection_pad1dzaten::reflection_pad2dzaten::reflection_pad3dc                @    Sn[        XU5      nU R                  SXUS9$ )Nreflectrb  rc  r_  rZ   r^   r|   re  r   r]  s        rc   r7   r7     s*     D%a8H44ut444rd   zaten::replication_pad1dzaten::replication_pad2dzaten::replication_pad3dc                @    Sn[        XU5      nU R                  SXUS9$ )Nedgerb  rc  ri  rj  s        rc   r:   r:     s*     D%a8H44ut444rd   z	aten::padc                
   [         R                  " US5      nUS:X  a  [        XU5      $ US:X  a  [        XU5      $ US:X  a  [	        XX$5      $ US:X  a  [
        R                  " XU5      $ [        R                  " SU 3U5      e)Ns	replicaterh  ra  circularzUnrecognized padding mode )	r	   r   r:   r7   r   ru   _pad_circularr   r   )r^   r|   r3   r   rf  s        rc   r3   r3     s     %%dC0D{q--		a,,		q44		##Ac22''*DTF(KUSSrd   zaten::linalg_detc                &    U R                  SU5      $ )NDetr   )r^   r_   s     rc   r+   r+     s    44trd   zaten::logdetc                B    [         R                  " U [        X5      5      $ r   )ru   logr+   )r^   r|   s     rc   r-   r-     s    ::aA-..rd   aten::arangec                2   S n[        U5      S:X  a  [        S U 5       5      (       a  [        R                  nU R	                  S[        R
                  " US   US9S9nU R	                  S[        R
                  " US   US9S9nU R	                  S[        R
                  " SUS9S9nU R	                  S	XEU5      $ [        U5      S:X  d  [        U5      S
:X  a  [        U5      S:X  a  S nOU" US   5      n[        R                  " XS   US9u  pupHU R	                  S[        R
                  " SUR                  5       S9S9n	U R	                  S[        R
                  " SUR                  5       S9S9nU R	                  S	XU5      $ [        U5      S:X  d  [        U5      S:X  aS  [        U5      S:X  a  S nOU" US   5      n[        R                  " XS   US   US   US9u  ppHU R	                  S	XEU5      $ [        U5      S:X  an  U" US   5      n[        R                  " XS   US   US9u  pupHU R	                  S[        R
                  " SUR                  5       S9S9nU R	                  S	XEU5      $ [        R                  " SS[        U5       S35      $ )Nc                4    [         R                  " U S5      n U $ )Nr}   )r	   r   rO   s    rc   _get_arange_dtype!arange.<locals>._get_arange_dtype
  s    00<rd   rO  c              3  B   #    U  H  n[        U[        5      v   M     g 7fr   )
isinstancer   ).0vals     rc   	<genexpr>arange.<locals>.<genexpr>  s     Cdsjc22ds   rN   r   rO   rQ   r   Ranger   )rH  rP   r      r   )rE  rH  steprP   r{   )rE  rH  rP   rv  zwith z
 arguments)
r   allr[   rU  rZ   r\   r	   _arange_cast_helperrP   r   )r^   argsry  rP   rE  rH  delta_defaulttype_r  start_defaultr.  s              rc   r   r     s    4yA~#CdCCCLLa6  

 ddLLa6  

 LL%0  
 ttGU77	Ta3t9>t9>E &d1g.E"1"E"E7%#
E LL%++-8  
 LL%++-8  
 ttG]??	Ta3t9>t9>E &d1g.E-AA!W$q'Qu
 ttGU..	Ta!$q'*"1"E"E!W$q'#
E LL%++-8  
 ttGU77--eCI;j9
 	
rd   zaten::_dim_arangec           
         U R                  SU5      nU R                  SX0R                  S[        R                  " U5      S9SS9n[        XSS S S 5      $ )Nr   r   rN   rQ   r   r   r   )rZ   r[   r\   r   )r^   liker   
like_shapestops        rc   _dim_aranger  P  sZ     gt$J44*dd:u||C7HdIRS  D !1dD$//rd   z
aten::size)quantize_outputc                Z    Uc  U R                  SU5      $ [        R                  " XU5      $ )Nr   )rZ   r	   _size_helperr^   r_   r   s      rc   r>   r>   Z  s-     {ttGT""''55rd   zaten::squeezec                $   Uc  U R                  SU5      $ [        R                  " U5      (       d  [        R                  " XU/5      $ [        R                  " USS5      n[        R
                  " U5      nUnUb
  US:  a  XC-  n[        R                  " X5      nUS:  a  Ub  UGc
  U R                  S[        R                  " U/5      S9n[        R                  " XU5      nU R                  S[        R                  " S[        R                  S9S9nU R                  S	Xx5      n	[        R                  " U S
U	SS9u  n
u  pn[        R                  " XU/5      n[        R                  " UR                   U5        UR                  SU5      n[        R                  " UR                   U5        U
$ UnUS:  a?  ["        R$                  " S['        U5      -   S-   S-   ['        U5      -   S-   S-   S-   5        U$ [        R                  " XU/5      $ )NSqueezer}   r   r   rN   rQ   r   rO   EqualIfrO  )n_blocksIdentityz5This model contains a squeeze operation on dimension z. The size of z%this dimension in the given input is z. The model will zWbe exported without the squeeze node. If the model is intended to be used with dynamic z7input shapes, please export with dynamic_axes argument.)rZ   r	   _is_constantr   r   ro   _get_tensor_dim_sizer[   r\   r  onesrU  r   add_op_with_blocksr   _add_output_to_blockblockwarningswarnstr)r^   r_   r   
input_rankadjusted_dimdim_sizedim_constantr>   	const_onecondif_op
if_contextelse_contextr.  squeeze_	identity_s                   rc   rB   rB   b  s   
{ttIt$$ '',,..q>>

$
$S#u
5C 11$7JL#'"33DGHaJ&8+; ttJcU0CtD++A\BDDUZZ-MDN	ttGT-/8/K/KtTA0
,)
1 #22:cUK"":#3#3X> OOJ5	""<#5#5yA C!|C#h 66 (m	
 "" hh HH		
 **1SE::rd   zaten::unsqueezec                    [         R                  " U5      (       a  [         R                  " USS5      n[         R                  " XU/5      $ )Nr}   r   )r	   r  r   r   r  s      rc   rG   rG     s<    ##C((((c59,,Qse<<rd   zaten::mmc                &    U R                  SXSSS9$ )NGemmg        g      ?)beta_falpha_fr   )r^   r_   r  s      rc   r0   r0     s    44C4==rd   zaten::indexc                   [         R                  " U5      (       a  [         R                  " U5      nOU/n[        U5      S:X  a  US   n[         R                  " U5      (       d~  [         R
                  " U5      (       d;  [        R                  R                  U5      [        R                  R                  :X  a(  [        R                  " X5      nU R                  SX5      $ [        R                  " XU5      $ )Nr   r   r   )r	   r   r   r   rj   r   r   rW   rX   UINT8ru   r   rZ   r'   )r^   r_   r'   r/  s       rc   r'   r'     s    &&u--!..u5' 7|q
''..$$U++((33E:((../ NN1,E44
D00<<''rd   zaten::index_fillc                    [         R                  " XX#5      u  pV[         R                  " U5      n[         R                  " XA5      n[        R
                  " XUS 5      n[        XX&U5      $ r   )r	   _index_fill_reshape_helperr   rd  ru   r   r<   )r^   r_   r   r'   rf  expanded_index_shapeexpanded_indexexpanded_values           rc   r&   r&     s_    +:+U+U	,( --e4E..u;E]]1-A4HN1C@@rd   zaten::index_copyc                N    [         R                  " XX#5      u  pV[        XX&U5      $ r   )r	   r  r<   )r^   r_   r   r'   r   _expanded_index_shaper  s          rc   r(   r(     s,    ,;,V,V	-) 1C88rd   zaten::bitwise_right_shiftzaten::__rshift_c                   [         R                  R                  U[         R                  R                  5      [         R                  R                  U5      :w  a<  U R	                  SU[         R                  R                  U5      R                  5       S9n[         R                  R                  U[         R                  R                  5      [         R                  R                  :X  a  U R	                  SXSS9$ U R	                  S[        R                  " S[        R                  S9S	9n[        R                  " U5      (       d)  U R	                  SU[        R                  R                  S9nU R	                  S
X25      nU R	                  SU[         R                  R                  U5      R                  5       S9nU R	                  SX5      nU$ )Nrg   rh   BitShiftRIGHTdirection_srN   rO  rO   rQ   PowDivr   rW   rX   rn   rZ   rk   r  r[   r\   float32r	   r4  rV  rW  rY   )r^   r_   r  twotwo_powrshifts         rc   	__rshift_r    sx   
   ++{((22		"	"	-	-d	34 **55d;EEG  
 	!!,,T;3L3L3V3VW$$**	+ ttJtAA
$$z5<<#G$
HC!!$''VU)D)D)J)JKdd5#%Gdd&&11$7AAC  G
 TT%'FMrd   zaten::bitwise_left_shiftzaten::__lshift_c                   [         R                  R                  U[         R                  R                  5      [         R                  R                  U5      :w  a<  U R	                  SU[         R                  R                  U5      R                  5       S9n[         R                  R                  U[         R                  R                  5      [         R                  R                  :X  a  U R	                  SXSS9$ U R	                  S[        R                  " S[        R                  S9S	9n[        R                  " U5      (       d)  U R	                  SU[        R                  R                  S9nU R	                  S
X25      nU R	                  SU[         R                  R                  U5      R                  5       S9nU R	                  SX5      nU$ )Nrg   rh   r  LEFTr  rN   rO  rO   rQ   r  r2  r  )r^   r_   r  r  r  lshifts         rc   	__lshift_r    sx   
   ++{((22		"	"	-	-d	34 **55d;EEG  
 	!!,,T;3L3L3V3VW$$**	+ ttJt@@
$$z5<<#G$
HC!!$''VU)D)D)J)JKdd5#%Gdd&&11$7AAC  G
 TT%'FMrd   c                   U R                  SXR                  S[        R                  " US-  5      S95      nU R                  SUU R                  S[        R                  " X2S-
  -  5      S95      nU R                  SU R                  S[        R                  " S5      S9UU R                  S[        R                  " U5      S95      n[        R                  " SX#-  U5      nU R                  SUR	                  S5      S9n[
        R                  " XS/5      n[
        R                  " XU R                  S[        R                  " S	S/5      S95      n	U R                  SXy5      n
U
$ )
Nr=  rN   rO  rQ   rN  r   r  r   r   )rZ   r[   r\   r   rG   r	   r   r   )r^   input_dkernel_size_d
dilation_d	padding_dstride_dblocks_dblocks_d_indiceskernel_gridkernel_mask
block_masks              rc   _get_im2col_indices_along_dimr    sH    ttwZi!m1LMH tt	ZjA<M.N!OPH tt	Za1	Zh!78	 ,,q-"<jIK$$z;+@+@+C$DK '88	aS "11	Zr1g1FGK e-;Jrd   c           	     z    U R                  S[        R                  " SSX#/S-  5      S9nU R                  SX5      $ )NrN   r   rO  rQ   rb  )rZ   r[   r   )r^   r|   	padding_h	padding_wr3   s        rc   _get_im2col_padded_inputr  8  s?     $$z5#3#3Q94PST4T#U$
VC44u""rd   c                   [        XU R                  S[        R                  " S5      S95      n[        XU R                  S[        R                  " S5      S95      nU R                  SXPR                  S[        R                  " X#-  5      S95      nU R                  S[        R
                  " XS/5      [        R
                  " XS/5      U R                  S[        R                  " S/5      S9SS9$ )	NrN   r   rQ   r   r2  r   r   r   )r>   rZ   r[   r\   r	   r   )r^   r|   kernel_hkernel_w	batch_dimchannel_dimchannel_unfoldeds          rc   _get_im2col_output_shaper  @  s    QqttJQtHIIqj%,,q/!JKKtt{DDU\\(BU5VDW 44))!<))!sC	Zrd!34   rd   zaten::im2colisc           
        [        XU R                  S[        R                  " S5      S95      n[        XU R                  S[        R                  " S5      S95      nUS   US   pUS   US   pUS   US   pUS   US   p[	        XXX5      n[	        XXX5      n[        XX5      n[        XX5      nU R                  SUUSS9nU R                  SUUS	S9nU R                  S
U/ SQS9n[        R                  " U UU5      $ )NrN   rO  rQ   r   r   r   r   r   r   rP  )r   r   rO  r   r   r   rQ  )	r>   rZ   r[   r\   r  r  r  r	   r   )r^   r|   kernel_sizedilationre  strideinput_hinput_wstride_hstride_wr  r  
dilation_h
dilation_wr  r  blocks_row_indicesblocks_col_indicesoutput_shapepadded_inputoutputs                        rc   r%   r%   P  s    1QTT*ell1oTFGG1QTT*ell1oTFGGF1Ih"1:wqzy%a[(1+
$QQh6	H) 7	H) ,AhIL+AiKL2 TT(L*<QTGFTT(F$6qTAFTT+v.@TAF**1flCCrd   zaten::narrowc                R    U R                  SX45      n[        R                  " XX#US9$ )Nr=  r   )rZ   r	   r   )r^   r|   r   rE  lengthrH  s         rc   r1   r1     s(    
$$ue
$C((PSTTrd   zaten::flattenc                Z   [         R                  " U5      nUS:X  a  U$ US:X  a"  US:X  d  Ub  X4S-
  :X  a  U R                  SXS9$ O*US:X  a$  US:X  d  Ub  X4S-
  :X  a  U R                  SXS-   S9$ Uc  [         R                  " SS	5      $ US:  a  XC-   n[         R                  " XX#U5      $ )
Nr   r   Flattenr   r   rO  r   zfONNX and PyTorch use different strategies to split the input. Input rank must be known at export time.)r	   ro   rZ   r   _flatten_helper)r^   r|   	start_dimend_dimr   s        rc   r!   r!     s     
*
*5
1C
axA~b=S_!G1C44	54;;	ab=S_!G1C44	514==
{--7
 	
 {-**1YMMrd   zaten::linalg_vector_normr   c                2    [         R                  " XX#XE5      $ r   )r	   _linalg_vector_norm_helper)r^   r_   ordr   keepdimrP   s         rc   r,   r,     s     55asXXrd   zaten::embedding_bagc
                @    [         R                  " U UUUUUUUUU	5
      $ r   )r	   _embedding_bag_helper)
r^   embedding_matrixr/  offsetsscale_grad_by_freqr   sparseper_sample_weightsinclude_last_offsetpadding_idxs
             rc   r   r     s5     00	 rd   zaten::embedding_renormc           
     V   U R                  SU5      nU R                  SX5      n[        U5      nUS:X  a  SnO$US:X  a  SnO[        R                  " SU S3U5      eU R                  XFS/SS	9nU R                  S
XR                  S[        R
                  " S5      S95      n	[        R
                  " U5      nU R                  SX95      n
U R                  SXj5      nU R                  SU R                  SX5      UU5      nU R                  SU[        R                  " XS/5      U5      $ )Nr  r   r   ReduceL1rO  ReduceL2z8Unsupported: ONNX export of embedding_renorm with norm: z. Only 1. and 2. are supported.)axes_irK  r=  rN   gHz>rQ   r  r2  WhereGreaterr   )rZ   r   r   r   r[   r\   r	   r   )r^   weightr/  max_norm	norm_typeunique_indicespartial_weightnorm_ipartial_weight_normpartial_weight_norm_scalespartial_weight_renorms               rc   r    r      s:    TT(G,NTT(F;N^F{		1	''Fvh O, ,
 	

 $$y!QR$S 44"DDU\\$=OD$P ||H%HTT%8FDD?DD	Y+6	 44))!aSA	 rd   zaten::chunkc                   U R                  SU R                  SU5      USS9nU R                  SX R                  S[        R                  " S/[        R                  S9S	95      nU R                  S
U R                  SXE5      U5      n[        R
                  " XUS 5      U R                  SX@R                  SXe5      5      /nU R                   " S/UQ7SS06n[        XXs5      $ )Nr   r   r   r   rN  rN   r   rO   rQ   r  r=  r2  r   r   )rZ   r[   r\   r@  ru   r   rA   )r^   r_   chunksr   r  chunk_size_s
chunk_size	chunk_vecs           rc   r   r     s     ttHadd7D13qtAH44vttJaS

0StTL eQTT%@&IJ 	a\48	UHdd5*CDI X4	4!4I)))rd   zaten::normalc	                    Ub3  [         R                  " U5      (       d  [        R                  " XUS 5      n[        R                  " XU R                  SU5      5      n	[        X	U5      $ )NRandomNormalLike)r	   rj   ru   r   r7  rZ   r   )
r^   meanstdsizes	generatorrP   layoutdevice
pin_memoryr   s
             rc   r2   r2     sU    " !9!9%!@!@}}QeT2ZZ%7 >?Fq$rd   zaten::atleast_1dc                X   [         R                  " U5      (       a  [         R                  " U5      (       a  [         R                  " U5      n/ nU Hl  nUn[         R                  " U5      nUS:X  a:  [         R
                  " XU R                  S[        R                  " S/5      S95      nUR                  U5        Mn     U R                  " S/UQ76 $ [         R                  " U5      nUS:X  a:  [         R
                  " XU R                  S[        R                  " S/5      S95      nU$ )Nr   rN   r   rQ   SequenceConstruct)
r	   r   r   r   ro   r   rZ   r[   r\   r   r^   r_   r   new_tensor_listr\   
new_tensortensor_ranks          rc   r   r     s   
   &&?+J+J4+P+P%2248!FJ)::6BKa,<<144
ELL!<M4#N
 "":. " tt':/::!2248Ka..QTT*ellA3.?T@
 Krd   zaten::atleast_2dc                   [         R                  " U5      (       a  [         R                  " U5      (       a  [         R                  " U5      n/ nU H  nUn[         R                  " U5      nUS:X  a<  [         R
                  " XU R                  S[        R                  " SS/5      S95      nOUS:X  a  [         R                  " XS/S9nUR                  U5        M     U R                  " S/UQ76 $ [         R                  " U5      nUS:X  a=  [         R
                  " XU R                  S[        R                  " SS/5      S95      nU$ US:X  a  [         R                  " XS/S9nU$ )Nr   rN   r   rQ   r  r'  r	   r   r   r   ro   r   rZ   r[   r\   r   r   r(  s          rc   r   r   8  sI      &&?+J+J4+P+P%2248!FJ)::6BKa,<<144
ELL!Q<P4#Q
 !,>>1#
 "":. " tt':/::!2248Ka..QTT*ellAq6.BTC

 K 
	00!EKrd   zaten::atleast_3dc                   [         R                  " U5      (       Ga	  [         R                  " U5      (       a  [         R                  " U5      n/ nU H  nUn[         R                  " U5      nUS:X  a<  [         R
                  " XU R                  S[        R                  " / SQ5      S95      nOOUS:X  a-  [         R                  " XS/S9n[         R                  " XS/S9nOUS:X  a  [         R                  " XS/S9nUR                  U5        M     U R                  " S	/UQ76 $ [         R                  " U5      nUS:X  a=  [         R
                  " XU R                  S[        R                  " / SQ5      S95      nU$ US:X  a.  [         R                  " XS/S9n[         R                  " XS/S9nU$ US:X  a  [         R                  " XS/S9nU$ )
Nr   rN   )r   r   r   rQ   r   r-  r   rO  r'  r.  r(  s          rc   r   r   Y  s      &&?+J+J4+P+P%2248!FJ)::6BKa,<<144
ELL<S4#T
 !,>>1#
 ->>2$
 !,>>2$
 "":.% "& tt':/::!2248Ka..QTT*ell9.ETF
 K 
	00!E00"F K 
	00"FKrd   zprim::ConstantChunkc           
     (   U R                  SU5      nU R                  S[        R                  " U/[        R                  S9S9nU R                  SXESS9nU R                  S[        R                  " S/[        R                  S9S9nU R                  S[        R                  " U/[        R                  S9S9nU R                  S[        R                  " US-
  /[        R                  S9S9n	U R                  S	Xi5      n
U R                  S
X5      n/ n[	        U5       Hn  nU R                  S[        R                  " US-   /[        R                  S9S9nU R                  SX5      nUR                  U R                  SXX5      5        UnMp     U$ )Nr   rN   rO   rQ   r   r   r   r   r=  r  r2  r>  )rZ   r[   r\   r@  r   r   )r^   r_   r  r   input_shaperF  input_shape_dimrE  r  chunk_size_minus_1input_shape_dim_shift	chunk_dimrG  r}   r'   rH  s                   rc   r6   r6     sP   $$w%K44
ELL#ejj$I4JDdd8[qdAODDU\\1#UZZ%HDIEj%,,xuzz*RSJELL&1*UZZH   DDLU1>I
C6]Zq1ugUZZ)PQdd5)+

144c89	 
 Jrd   zaten::hstackc                   [        X5      nU R                  SUU R                  S[        R                  " S[        R                  S9S95      nU R                  SU5      nU R                  SU5      nU R                  S[        R                  " S[        R                  S9S9nU R                  S	XE5      n[
        R                  " U S
USSS9u  nu  pn
UR                  SUSSS9n[        R                  " UR                  U5        U	R                  SUSSS9n[        R                  " U	R                  U5        UR                  5       R                  5       nU$ )Nr   rN   r   rO   rQ   r   rM  r   r  r  rO  )r  r  r  r  )r   rZ   r[   r\   r@  r   r  r   r  r  r   r  )r^   r   first_tensorfirst_tensor_shapefirst_tensor_dimr  equal_to_oneif_op_greaterif_context_equalelse_context_equalr.  	result_ifresult_elser   s                 rc   r$   r$     sJ   Q,K44	Zauzz!BCL
 g|4ttF$67Zauzz)JKI44!1=L 	$$QlQPQR	.		 ##k! $ I 
/55yA$''k! ( K 
177E!((*FMrd   zaten::vstackc                <    [        X5      nU R                  SUSSS9$ )Nr  r   r  )r   rZ   )r^   r   s     rc   rH   rH     s$    Q,K44$k!4JJrd   )r^   jit_utils.GraphContextr_   _C.Valuer`   floatra   rC  )r^   rA  )F)r   r  r   r   r   r  r   )r   )r   N)
r^   rA  r|   rB  r3   rB  r   rB  rf  rB  )r^   rA  r   zSequence[int] | Noner  bool)NNNNNN)r^   rA  r_   ztorch._C.Value)r^   rA  r   rB  )h__doc__
__future__r   	functoolsr   r  typingr   r[   r   torch._Cr   rV  
torch.onnxr   r   r	   r
   rY  r   ru   r   torch.onnx._internalr   r   collections.abcr   __all__partialonnx_symbolic_onnx_symbolicquantized_args
parse_argsr#   r   r   r   r8   r=   r)   r4   _apply_paramsr   r   r"   r<   r   r/   r.   r   r   r   r   r   r*   r5   r   r   rC   r!  rF   rD   r?   r   r;   r9   rA   r@   rE   r_  r   r7   r:   r3   r+   r-   r   r  r>   rB   rG   r0   r'   r&   r(   r  r  r  r  r  r%   r1   r!   r,   r   r    r   r2   r   r   r   r6   r$   rH    rd   rc   <module>rU     s   / "  
      %  9 (:x ""<#=#=RH  !%Cc* + & "" > >D !"C%

 & #

 !"C%

 & #

 - - %Cc*3 + &  3 !"LQxx #xv %&C%P & 'P ++,@!YOP ++,@!YOP ++,@!YOP ++,?HMN ++,A1hOP  ++,BAxPQ ++,@!WMNL							8L %&eUE5%O P ' Cc3/; 0  ;  Cc3/
 0 !
& Cf-
 .  
 %&) ')
 &'2 (2  9 9 "## $# !"5 #5
 0  0 - -  5  5 3 3 3  3 %C & C Q Q  !Cc3/& 0 "& "#Cc34&& 5 $& Cc3V< =  Cc62T 3 T  Cc62 3 ! C%	 & 	 !"/ #/ Cc3/!I 0 !IH ()Cc3/6 0 *6 Cc*
5 +  
56r '(7 )7 ()()()5 * * *5 )*)*)*5 + + +5 TTT 
T 	T
 T T( "# $ /  / D
  D
N #$C%0 & %0 e<6 = 6  /; !/;d !"= #= 
> > ( (& "#A $A "#9 $9 +,!" # -@ *+!" # ,@((V#  CtT480D 9  0Df U  U
  eU3Cc*N + 4 !N0 *+CdC5YY 
	Y
 Y 6 ,Y %&Cc3S#sCH I '4 ()Cc3/" 0 *"J * *  
 
     , "# $2 "# $@ "#( $(V %& '(   > K  Krd   