
    sg                       d Z ddlmZ ddlZddlZddlZddlmZ ddlZddlm	Z	 ddl
mZ ddlmZmZmZmZmZmZ ddlmZmZ g d	Z ej4                  ej6                  d
      Z ed       ej:                  d       ej<                  ddd      dd                     Z ed      dd       Z  ed       ej<                  dd      dd              Z! ed       ej<                  dd      dd              Z" ed      dd       Z# ed       ej:                  d       ej<                  ddd      dd                     Z$ ed      	 d	 dd       Z% ed       ej<                  dd      dd               Z& ed! ejN                  d"d#d$      g%       ed& ejN                  d'd(d$      g%       ed) ejN                  d*d+d$      g%       ed, ejN                  d-d#d.      g%       ed/ ejN                  d0d(d.      g%       ed1 ejN                  d2d+d.      g%       ed3 ejN                  d4d(d5      g%      dd6                                                 Z( ed7       ej:                  ddddddd      	 	 dd8              Z) ed9       ej<                  dddd      ddd:              Z* ed;       ej<                  dddd      dd<              Z+ ed=       ej<                  ddd>      ddd?              Z, ed@      ddA       Z- edB      ddC       Z. edD      ddE       Z/ edF      ddG       Z0 edH      ddI       Z1 edJ      ddK       Z2 edL      dddM       Z3 edN      ddO       Z4 edP      ddQ       Z5 edR      ddS       Z6 edT       ej:                  d      ddU              Z7 edV      ddW       Z8 edX       ej<                  dddd      ddY              Z9 edZ       ej<                  ddddd      	 	 dd[              Z: ed\       ej<                  dddddd>      ddd]              Z; ed^       ej<                  dddd>      ddd_              Z< ed`       ej<                  dddd>      ddda              Z= edb       ej<                  dd      dddc              Z> edd      dde       Z? edf       ej<                  dddd      dddg              Z@ edh       ej<                  dddd      dddi              ZA edj       ej<                  ddd      dddk              ZBddlZC edm      dddn       ZD edo       edp       edq      ddr                     ZE eds       edt       edu      ddv                     ZF edw      	 	 	 	 	 	 	 	 	 	 ddx       ZG edy      ddz       ZH ed{      dd|       ZI ed}      dd~       ZJ ed       ej<                  dd      dd              ZK ed       ej:                  dd      ddd              ZL ed      ddd       ZM ed      dd       ZN ed      dd       ZO ed      dd       ZP ed      dd       ZQ ed      dd       ZR ed       ed      dd              ZS ed       ed      dd              ZT	 	 ddZUddZVddZW ed       ej<                  ddddd      dd              ZX ed      dd       ZY ed       ej:                  ddd       ej<                  ddd      dd                     ZZ ed       ej<                  ddddd      	 	 	 	 	 	 dd              Z[ ed       ej<                  ddddddddd	      	 	 dd              Z\ ed       ej<                  dddd      dd              Z] ed      dd       Z^ ed      	 	 	 	 	 	 d	 dd       Z_ ed      dd       Z` ed      dd       Za ed      dd       Zb ed      dd       Zc ed      dd       Zd ed      dd       Zey)z(This file exports ONNX ops for opset 11.    )annotationsN)Sequence)_C)_onnx)_type_utilserrorssymbolic_helpersymbolic_opset10symbolic_opset9utils)	jit_utilsregistration)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                   t         j                  j                  |t         j                  j                        }| j	                  dt        j                  ||j                                     }| j	                  dt        j                  ||j                                     }t        j                  | d|||d      S )NConstantdtypevalue_tClip   opset_before)
r   JitScalarType
from_valueFLOAToptorchtensorrO   r	   _op_with_optional_float_cast)gselfmin_valmax_valscalar_types        N/var/www/html/venv/lib/python3.12/site-packages/torch/onnx/symbolic_opset11.pyr"   r"   \   s     ++66k''--K ddWK,=,=,?@  G ddWK,=,=,?@  G 77	64'     zaten::clampc                *     fd}t         j                  j                  |t         j                  j                        }|t         j                  j                  k7  r |||      } |||      }t	        j
                  |      rt         ||      S t	        j
                  |      rt         ||      S t	        j                  |      dk(  r3t	        j                  |      dk(  rt	        j                   d|||d      S t         t         ||      |      S )Nc                z    | 7t        j                  |       s"j                  d| |j                               S | S )NCastto_i)r	   _is_nonerY   	onnx_type)r[   rO   r]   s     rb   _cast_if_not_nonez clamp.<locals>._cast_if_not_noner   sC    o&>&>v&F44__&    Mrc   r   rR   rS   rT   )
r   rV   rW   	UNDEFINEDr	   ri   r   r   _get_tensor_rankr\   )r]   r^   minmaxrk   ra   s   `     rb   r   r   p   s     ++66k''11K k//999[1[1$D#&&		!	!#	&D#&& ,,S1Q6005:"??64c  Q	!T3 7==rc   zaten::clamp_minc                D   | j                  d|t        j                  j                  |      j	                               }t        j                  |      dk(  r0t        j                  |       }t        j                  | d|||d      S t        j                  | d||d      S )Nrf   rg   r   rR   rS   rT   Max
rY   r   rV   rW   rj   r	   rm   opset9unusedr\   )r]   r^   rn   ro   s       rb   r   r           $$vs!:!:!E!Ed!K!U!U!W$
XC'',1mmA;;vtS#B
 	
 ;;udCb
 	
rc   zaten::clamp_maxc                D   | j                  d|t        j                  j                  |      j	                               }t        j                  |      dk(  r0t        j                  |       }t        j                  | d|||d      S t        j                  | d||d      S )Nrf   rg   r   rR   rS   rT   Minrr   )r]   r^   ro   rn   s       rb   r   r      ru   rc   zaten::relu6c                f   t         j                  j                  |t         j                  j                        }| j	                  dt        j                  d|j                                     }| j	                  dt        j                  d|j                                     }t        | |||      S )NrM   r   rN   rP      )	r   rV   rW   rX   rY   rZ   r[   rO   r   )r]   inputra   r_   r`   s        rb   r7   r7      s    ++66{((..K ddQk&7&7&9:  G ddQk&7&7&9:  G E7G,,rc   zaten::selectic                ,    | j                  d|||      S )NGatheraxis_irY   )r]   r^   dimr&   s       rb   r<   r<      s    
 44$c422rc   zaten::index_putFc                *   t        j                  |      rt        j                  |      }n|g}t        j                  |d      }t	        |      dk(  r|S t	        |      dkD  rt        t	        |            D ]3  }t        j                  ||         s| j                  d||         ||<   5 |d   }|dd  D ]  }t        j                  | ||      } | j                  d|      }	|D cg c]0  }t        j                  | t        j                  | ||	d       dg      2 }} | j                  dg|ddi}n|d   }|}
t        j                  |
      rt        j                  |      }||dk(  rt        j                  | ||
|      S t        j                  |
      }t        j                  |      }|1|/||kD  r*t        j                  | |
t        t        ||                  }
t        | ||
|      S | j                  d|      }	t        j                  | |dg      }t        j                   | | j                  d|      dgt	        |      gt"        j$                  g	      }| j                  d|	|d
      }t        j                  |      }||dk(  rt        j                  | ||d       }t        j&                  | ||      }t(        j*                  j-                  |t(        j*                  j.                        }|t(        j*                  j.                  k7  r`t(        j*                  j-                  |t(        j*                  j.                        }||k7  r;| j                  d||j1                               }n|rt3        j4                  d|      |rk| j                  d| j                  d|      t7        j8                  dg|j;                                     }| j                  d|||      }t        | ||      }|S | j                  d|||      }|S c c}w )Nbr      NonZeroShapeConcatr   axesstartsendsr~   rf   rg   z'self does not have a valid scalar type.ConstantOfShaperN   rP   	ScatterND)r	   _is_packed_list_unpack_list
_parse_arglenrange_is_boolrY   rs   r   _unsqueeze_helperexpandrm   masked_filllistr-   _slice_helpersysmaxsize_reshape_helperr   rV   rW   rl   rj   r   SymbolicValueErrorrZ   r[   rO   )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                       rb   r(   r(      s    &&'9:&334FG*+ ++J<J
<A
<1#l+, 	ID''T(:;%&TT)\$5G%HT"	I Q# 	.CJJq%-E	. !We 4
 $	
  --6==C)>Et
 
 X88R8P Q##H-"33F;DDAI))!T8VDD'88BI'88>I%)	) +<<xeIy&A!B "!T8V<< !We 411!URDA$22	144aS#l2C1DCKK=N 44"7PQ4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Qf% M k47MG
s   )5Pzaten::pixel_shufflec                    t        j                  |      }||dk7  rt        j                  dd      S | j                  d||d      S )N   r3   zonly support 4d inputDepthToSpaceCRD)blocksize_imode_s)r	   rm   _unimplementedrY   )r]   r^   upscale_factorr   s       rb   r3   r3   E  sK     ++D1DDAI--o?VWW44.4OOrc   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    t        j                  | ||      S N)r	   _interpolate_helper)namer   interpolate_modes      rb   _interpolater   N  s    : ..tS:JKKrc   zaten::__interpolatec           	     8    t        j                  | ||||||      S r   )r	   __interpolate_helper)r]   rz   r=   scale_factormodealign_cornersrecompute_scale_factor	antialiass           rb   __interpolater   n  s'     //	5$dM;Q rc   zaten::gatherc                    t        j                  |d      rt        j                  dd      S | j                  d|||      S )Nr{   r!   zsparse_grad == TrueGatherElementsr~   )r	   _maybe_get_constr   rY   )r]   r^   r   r&   sparse_grads        rb   r!   r!     s@     ''S9--h8MNN44 $c4::rc   zaten::scatterc           
        t         j                  j                  |      }t        j                  |      }t        j
                  |      r| j                  d||||      S t         j                  j                  |      |k7  r?| j                  d|t         j                  j                  |      j                               }| j                  d||t        j                  | ||      |      S )NScatterElementsr~   rf   rg   )
r   rV   rW   r	   _maybe_get_scalar	_is_valuerY   rj   rs   	expand_as)r]   r^   r   r&   srcsrc_types         rb   r;   r;     s     ((33C8H

+
+C
0C  %tt%tUCtDD $$//5A$$ ..99$?IIK  C
 tttUF,<,<QU,KTW  
 	
rc   zaten::cumsumnonec                |   | j                  dt        j                  |t        j                              }|rn|j	                         j                         dk7  rMt        j                  |dd      }| j                  d|t        j                  |      j                               }n|}| j                  d	||      }|S )
NrM   rN   rP   zprim::Constantr{   rO   rf   rg   CumSum)rY   rZ   r[   intnodekindr	   
_get_constr   rV   rj   )r]   r^   r   rO   
dim_tensorparsed_dtypecastcsums           rb   r   r     s     j%,,s%))*LMJ""$(88&11%gFttD{88FPPR  
 44$
+DKrc   zaten::masked_selectc                ~    t        j                  | t        j                  | ||            }| j                  d||      S )NGatherND)rs   nonzeror   rY   )r]   r^   maskr&   s       rb   r.   r.     s4    NN1f..q$=>E44
D%((rc   zaten::masked_scatterc                   t        j                  | t        j                  | ||            }t        j                  | |t        j                  dg            }t        j                  | |t        j                  dg      t        j                  dg      t        j                  | |t        j                  dg                  }| j                  d|||      S )Nr   r   r   r   )
rs   r   r   r	   r   rZ   
LongTensorr   r=   rY   )r]   r^   r   sourcer&   s        rb   r-   r-     s    NN1f..q$=>E ,,Q8H8H"8NOF**	qc"$[[E5#3#3QC#89F 44T5&11rc   z	aten::lenc           
     &   t        j                  |      s!|j                         j                         dk(  r| j	                  d|      S t        | || j	                  dt        j                  dg                  }t        j                  | |dg      S )Nzonnx::SplitToSequenceSequenceLengthrM   r   rP   )	r	   _is_tensor_listr   r   rY   r=   rZ   r   _squeeze_helper)r]   r^   sz_0s      rb   _lenr     s{     	''-99;!88tt$d++4j%2B2BA32GHID**1dQC88rc   zaten::__getitem_c                r    t        j                  |      r| j                  d||      S ddlm}  || ||      S )N
SequenceAtr   )
__getitem_)r	   r   rY   torch.onnx.symbolic_opset9r   )r]   r^   r{   getitems       rb   r   r     s5    &&t,ttL$**Dq$""rc   zaten::_set_itemc                P    | j                  d||      }| j                  d|||      S )NSequenceEraseSequenceInsertr   )r]   tensor_listr{   rJ   s       rb   	_set_itemr     s*    $$Q7K44 +q!44rc   zaten::appendc                (    | j                  d||      S Nr   r   )r]   r^   r[   s      rb   r   r     s    44 $//rc   z	aten::addc                ^   t        j                  |      rt        j                  |      rl|j                         }|j	                         dk7  rt        j
                  dd      S t        j                  |      }|}|D ]  }| j                  d||      } |S t        j                  | |||      S )Nzprim::ListConstructr   z6does not support adding dynamic tensor list to anotherr   )
r	   r   r   r   r   r   r   rY   rs   r   )r]   r^   otheralphatensor_list_nodetensorslts           rb   r   r     s      &?+J+J4+P ::<  "&;;"11O  "..u5 	-A%q!,A	-::aue,,rc   zaten::insertc                *    | j                  d|||      S r   r   )r]   r^   posr[   s       rb   r)   r)     s    44 $44rc   z	aten::popc                (    | j                  d||      S Nr   r   r]   r   r   s      rb   r4   r4         44c22rc   zaten::Deletec                (    | j                  d||      S r  r   r  s      rb   r   r     r  rc   z	aten::catc                    t        j                  |      rt        j                  | ||      S t        j                  |dd      }| j                  d||      S )Nr{   r   ConcatFromSequencer~   )r	   r   rs   r   r   rY   r  s      rb   r   r     sO     &&{3zz![#..((c59tt(+ctBBrc   zaten::stackc                    t        j                  |      rt        j                  | ||      S t        j                  |dd      }| j                  d||d      S )Nr{   r   r  r   r   
new_axis_i)r	   r   rs   rB   r   rY   r  s      rb   rB   rB     sO    &&{3||A{C00((c59tt(+catPPrc   zaten::_unique2c                @    | j                  d||d      \  }}}}|||fS )NUniquer   )sorted_ioutputsr   )	r]   r^   sortedreturn_inversereturn_countsuindicesinverse_indicescountss	            rb   _unique2r    s8     +,$$$ +/ +'Aw ov%%rc   zaten::unique_dimc                B    | j                  d|||d      \  }}}}	|||	fS )Nr  r   )r   r  r  r   )
r]   r^   r   r  r  r  r  r  r  r  s
             rb   rE   rE     s:    
 +,$$$sVQ +/ +'Aw ov%%rc   z
aten::topkc           	     :    t        j                  | ||||||      S )N)largestr  out)r	   _topk_helper)r]   r^   kr   r"  r  r#  s          rb   rC   rC   *  s&     ''	4CS rc   z
aten::sortc                6    t        j                  | ||||      S N)	decendingr#  r	   _sort_helper)r]   r^   r   r(  r#  s        rb   r>   r>   2  s     ''4	sSSrc   zaten::argsortc                @    t        j                  | ||||      \  }}|S r'  r)  )r]   r^   r   r(  r#  _r  s          rb   r   r   8  s*     !--	4	sJAw Nrc   zaten::roundc                   t        j                  |      s|S |dk(  r| j                  d|      S | j                  d|| j                  dt        j                  t        d|                        }| j                  d|      }| j                  d|| j                  dt        j                  t        dd|z                          S )Nr   RoundMulrM   
   rP   r   )r	   _is_fprY   rZ   r[   pow)r]   r^   decimalsmulr:   s        rb   r:   r:   A  s     !!$'1}ttGT""
$$udADDU\\#b(BS5TDU
VCDD#E44uadd:u||CBM<R/SdT rc   zaten::remainderc                    t        j                  |      st        j                  |      rt        j                  | ||      S | j	                  d||d      S )NModr   )fmod_i)r	   r1  rs   r8   rY   )r]   rz   r  s      rb   r8   r8   O  sI    e$(>(>u(E5%0044ueA4..rc   zaten::splitc                   t        j                  ||      s| j                  d|||      }||S t        j                  |      rt	        t        j
                  |            |k(  rt        j
                  |      D cg c]  }t        j                  | |dg       }}| j                  dt        j                  dgt        j                              }| j                  dt        j                  |gt        j                              }	g }
t        |      D ]>  }| j                  d|||         }|
j                  | j                  d||||	             |}@ |
S t        |      D cg c]J  }| j                  d	|| j                  dt        j                  |gt        j                                    L c}S t        j                  | ||||      S c c}w c c}w )
NSplitToSequencer~   r   rM   rN   rP   AddSlicer   )r	   _is_split_staticrY   r   r   r   r   rZ   r[   longr   r   rs   r@   )r]   r^   split_size_or_sizesr   _outputs	split_outrJ   split_sizesstartaxisresr{   ends                rb   r@   r@   V  s    ++,?JDD*D2EcDR	 ++,?@O001DEF(R )556IJ  11!Q<K  DDU\\1#UZZ-PDQE44
ELL#ejj,Q4RDC8_ dd5+a. 

144uc4@A J 8_
  DDZqc)LM
 	
 ||At%8#xHH/
s   ?G+AGzaten::split_with_sizesc                     t        | ||||      S r   )r@   )r]   r^   rA  r   r?  s        rb   r?   r?   |  s     D+sH55rc   zaten::unbindc                    |J| j                  d|| j                  dt        j                  dt        j                              |d      S t	        j
                  | |||      S )Nr9  rM   r   rN   rP   r   )r   
keepdims_i)rY   rZ   r[   r=  rs   rD   )r]   r^   r   r?  s       rb   rD   rD     sb     ttDDU\\!5::%FDG  
 	
 }}Qc844rc   c                F   t        j                  |      s?t        j                  |      r*t        j                  |      r| j	                  d|dd      }t        j                  | || j	                  dt        j                  dg                  }t        j                  |      }|#| j	                  d| j	                  d|            }n6| j	                  dt        j                  |t        j                  	            }| j	                  d
| j	                  d|| j	                  dt        j                  dt        j                  	                  |      }| j	                  d|t        j                  j                        }| j	                  d|| j	                  d|t        j                  dgt        j                  	            d      }t        j                  | || j	                  dt        j                  ddg                  }| j	                  dt        j                   | |dg      ddg      }t        j                  | || j	                  dt        j                  dg                  }| j	                  d|t        j                  j                        }|S )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  rM   rP   Sizer   rN   Subr/     rf   rg   r   r   r~   r   	Transposeperm_i)r	   r   _is_list_is_scalar_listrY   rs   r=   rZ   r[   rm   int64_C_onnxTensorProtoDataTypeINT64r   opset10flip)r]   rz   r2   pad_lenr   	extensionpaddings	padding_cs           rb   _prepare_onnx_paddingsr\    s    ++C0$$S)++C0dd'Q1dE
 kk!S!$$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 ..	8QTT*ellB7.CTDH ttKaA3!?AtOH..	8QTT*ellB4.@TAH VXG,G,G,M,MNIrc   zaten::constant_pad_ndc                    d}t        j                  |      }t        j                  ||      }t        | ||      }| j	                  d||||      S )NconstantPadr   )r	   r   _if_scalar_type_asr\  rY   )r]   rz   paddingvaluer   r2   s         rb   r   r     sP    D--e4E..ue<E
 E7
3C44uc5466rc   zaten::reflection_pad1dzaten::reflection_pad2dzaten::reflection_pad3dc                J    d}t        | ||      }| j                  d|||      S )Nreflectr_  r`  r\  rY   r]   rz   rb  r   rZ  s        rb   r6   r6     s.     D%a8H44uht444rc   zaten::replication_pad1dzaten::replication_pad2dzaten::replication_pad3dc                J    d}t        | ||      }| j                  d|||      S )Nedger_  r`  rf  rg  s        rb   r9   r9     s.     D%a8H44uht444rc   z	aten::padc                   t        j                  |d      }|dk(  rt        | ||      S |dk(  rt        | ||      S |dk(  rt	        | |||      S |dk(  rt        j                  | ||      S t        j                  d| |      )Ns	replicatere  r^  circularzUnrecognized padding mode )	r	   r   r9   r6   r   rs   _pad_circularr   r   )r]   rz   r2   r   rc  s        rb   r2   r2     s     %%dC0D{q%--		a,,		q%e44		##Auc22''*DTF(KUSSrc   zaten::linalg_detc                &    | j                  d|      S )NDetr   )r]   r^   s     rb   r*   r*     s    44trc   zaten::logdetc                B    t        j                  | t        | |            S r   )rs   logr*   )r]   rz   s     rb   r,   r,     s    ::aAu-..rc   aten::arangec                x   d }t        |      dk(  rt        d |D              rt        j                  }| j	                  dt        j
                  |d   |            }| j	                  dt        j
                  |d   |            }| j	                  dt        j
                  d|            }| j	                  d	|||      S t        |      dk(  st        |      d
k(  rt        |      dk(  rd }n ||d         }t        j                  | |d   |      \  }}}}| j	                  dt        j
                  d|j                                     }	| j	                  dt        j
                  d|j                                     }| j	                  d	|	||      S t        |      dk(  st        |      dk(  rXt        |      dk(  rd }n ||d         }t        j                  | |d   |d   |d   |      \  }
}}}| j	                  d	|||      S t        |      dk(  ry ||d         }t        j                  | |d   |d   |      \  }}}}| j	                  dt        j
                  d|j                                     }| j	                  d	|||      S t        j                  ddt        |       d      S )Nc                2    t        j                  | d      } | S Nr{   )r	   r   rN   s    rb   _get_arange_dtypez!arange.<locals>._get_arange_dtype  s    00<rc   rL  c              3  <   K   | ]  }t        |t                y wr   )
isinstancer   ).0vals     rb   	<genexpr>zarange.<locals>.<genexpr>
  s     Csjc2Cs   rM   r   rN   rP   r   Ranger   )rE  rO   r      r   )rB  rE  steprO   ry   )rB  rE  rO   rs  zwith z
 arguments)
r   allrZ   rR  rY   r[   r	   _arange_cast_helperrO   r   )r]   argsrw  rO   rB  rE  delta_defaulttype_r  start_defaultr,  s              rb   r   r     s    4yA~#CdCCLLa6  

 ddLLa6  

 LL%0  
 ttGUC77	Ta3t9>t9>E &d1g.E"1"E"E47%#
sE4 LL%++-8  
 LL%++-8  
 ttG]C??	Ta3t9>t9>E &d1g.E-AAT!W$q'Qu
3t ttGUC..	Ta!$q'*"1"E"ET!W$q'#
sE4 LL%++-8  
 ttGUC77--eCI;j9
 	
rc   zaten::_dim_arangec           
         | j                  d|      }| j                  d|| j                  dt        j                  |            d      }t        | |dd d d       S )Nr   r}   rM   rP   r   r~   r   )rY   rZ   r[   r   )r]   liker   
like_shapestops        rb   _dim_aranger  L  s^     gt$J44*add:u||C7HdIRS  D !T1dD$//rc   z
aten::size)quantize_outputc                X    || j                  d|      S t        j                  | ||      S )Nr   )rY   r	   _size_helperr]   r^   r   s      rb   r=   r=   V  s/     {ttGT""''455rc   zaten::squeezec                   || j                  d|      S t        j                  |      st        j                  | ||g      S t        j                  |dd      }t        j
                  |      }|}|
|dk  r||z  }t        j                  ||      }|dk  r||| j                  dt        j                  |g            }t        j                  | ||      }| j                  dt        j                  dt        j                              }| j                  d	||      }	t        j                  | d
|	d      \  }
\  }}}t        j                  |||g      }t        j                  |j                   |       |j                  d|      }t        j                  |j                   |       |
S |}|dkD  r>t#        j$                  dt'        |      z   dz   dz   t'        |      z   dz   dz   dz          |S t        j                  | ||g      S )NSqueezer{   r   r   rM   rP   r   rN   EqualIfrL  )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.)rY   r	   _is_constantr   r   rm   _get_tensor_dim_sizerZ   r[   r  onesrR  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                   rb   rA   rA   ^  s   
{ttIt$$ '',..q$>>

$
$S#u
5C 11$7JL#'
"33D,GHaJ&8+; ttJcU0CtD++At\BDDUZZ-MDN	ttGT9-/8/K/KtTA0
,)
L1 #22:tcUK"":#3#3X> OOJ5	""<#5#5yA C!|C#h 66 (m	
 "" hh HH		
 **1dSE::rc   zaten::unsqueezec                    t        j                  |      rt        j                  |dd      }t        j                  | ||g      S )Nr{   r   )r	   r  r   r   r  s      rb   rF   rF     s;    ##C(((c59,,Qse<<rc   zaten::mmc                .    | j                  d||dd      S )NGemmg        g      ?)beta_falpha_fr   )r]   r^   r  s      rb   r/   r/     s    44eC4==rc   zaten::indexc                   t        j                  |      rt        j                  |      }n|g}t        |      dk(  r|d   }t        j                  |      sxt        j
                  |      s:t        j                  j                  |      t        j                  j                  k(  r)t        j                  | |      }| j                  d||      S t        j                  | ||      S )Nr   r   r   )r	   r   r   r   ri   r   r   rV   rW   UINT8rs   r   rY   r&   )r]   r^   r&   r  s       rb   r&   r&     s    &&u-!..u5' 7|q
''.$$U+((33E:((../ NN1e,E44
D%00<<4''rc   zaten::index_fillc                   t        j                  |d      }t        j                  | |||      \  }}t        j                  |      }t        j                  ||      }t        j                  | ||d       }t        | ||||      S rv  )r	   r   _index_fill_reshape_helperr   ra  rs   r   r;   )	r]   r^   r   r&   rc  	dim_valueexpanded_index_shapeexpanded_indexexpanded_values	            rb   r%   r%     s    **34I+:+U+U	4e,(. --e4E..ud;E]]1e-A4HN1dC@@rc   zaten::index_copyc                    t        j                  |d      }t        j                  | |||      \  }}t        | ||||      S rv  )r	   r   r  r;   )r]   r^   r   r&   r   r  r  r  s           rb   r'   r'     sH    **34I+:+U+U	4e,(. 1dC88rc   zaten::bitwise_right_shiftzaten::__rshift_c                   t         j                  j                  |t         j                  j                        t         j                  j                  |      k7  r?| j	                  d|t         j                  j                  |      j                               }t         j                  j                  |t         j                  j                        t         j                  j                  k(  r| j	                  d||d      S | j	                  dt        j                  dt        j                        	      }t        j                  |      s,| j	                  d|t        j                  j                        }| j	                  d
||      }| j	                  d|t         j                  j                  |      j                               }| j	                  d||      }|S )Nrf   rg   BitShiftRIGHTdirection_srM   rL  rN   rP   PowDivr   rV   rW   rl   rY   rj   r  rZ   r[   float32r	   r1  rS  rT  rX   )r]   r^   r  twotwo_powrshifts         rb   	__rshift_r    s{   
   ++{((22		"	"	-	-d	34 **55d;EEG  
 	!!,,T;3L3L3V3VW$$**	+ ttJetAA
$$z5<<#G$
HC!!$'VU)D)D)J)JKdd5#u%Gdd&&11$7AAC  G
 TT%w'FMrc   zaten::bitwise_left_shiftzaten::__lshift_c                   t         j                  j                  |t         j                  j                        t         j                  j                  |      k7  r?| j	                  d|t         j                  j                  |      j                               }t         j                  j                  |t         j                  j                        t         j                  j                  k(  r| j	                  d||d      S | j	                  dt        j                  dt        j                        	      }t        j                  |      s,| j	                  d|t        j                  j                        }| j	                  d
||      }| j	                  d|t         j                  j                  |      j                               }| j	                  d||      }|S )Nrf   rg   r  LEFTr  rM   rL  rN   rP   r  r/  r  )r]   r^   r  r  r  lshifts         rb   	__lshift_r    s{   
   ++{((22		"	"	-	-d	34 **55d;EEG  
 	!!,,T;3L3L3V3VW$$**	+ ttJet@@
$$z5<<#G$
HC!!$'VU)D)D)J)JKdd5#u%Gdd&&11$7AAC  G
 TT%w'FMrc   c                   | j                  d|| j                  dt        j                  |dz                    }| j                  d|| j                  dt        j                  ||dz
  z                    }| j                  d| j                  dt        j                  d            || j                  dt        j                  |                  }t        j                  d||z  |      }| j                  d|j	                  d            }t        j                  | |dg      }t        j                  | || j                  dt        j                  d	dg                  }	| j                  d||	      }
|
S )
Nr:  rM   rL  rP   rK  r   r}  r   r   )rY   rZ   r[   r   rF   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              rb   _get_im2col_indices_along_dimr    sU    ttwZi!m1LMH tt	ZjMA<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rc   c           	         | j                  dt        j                  dd||gdz              }| j                  d||      S )NrM   r   rL  rP   r_  )rY   rZ   r   )r]   rz   	padding_h	padding_wr2   s        rb   _get_im2col_padded_inputr  6  sC     $$z5#3#3Q9i4PST4T#U$
VC44uc""rc   c                   t        | || j                  dt        j                  d                  }t        | || j                  dt        j                  d                  }| j                  d|| j                  dt        j                  ||z                    }| j                  dt	        j
                  | |dg      t	        j
                  | |dg      | j                  dt        j                  dg            d      S )	NrM   r   rP   r   r/  r   r   r~   )r=   rY   rZ   r[   r	   r   )r]   rz   kernel_hkernel_w	batch_dimchannel_dimchannel_unfoldeds          rb   _get_im2col_output_shaper  >  s    QqttJQtHIIq%j%,,q/!JKKtt{ADDU\\(XBU5VDW 44))!Y<))!-=sC	Zrd!34   rc   zaten::im2colisc           
     <   t        | || j                  dt        j                  d                  }t        | || j                  dt        j                  d                  }|d   |d   }	}|d   |d   }}
|d   |d   }}|d   |d   }}t	        | ||||
|      }t	        | |||||	      }t        | |||      }t        | ||
|      }| j                  d||d      }| j                  d||d	      }| j                  d
|g d      }t        j                  | ||      S )NrM   rL  rP   r   r   r   r}   r~   r   rM  )r   r   rL  r   r   r   rN  )	r=   rY   rZ   r[   r  r  r  r	   r   )r]   rz   kernel_sizedilationrb  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                        rb   r$   r$   N  s<    1eQTT*ell1oTFGG1eQTT*ell1oTFGGF1IhH"1:wqzyI%a[(1+
J$QQhH6	7Hj)X 7	7Hj)X ,AuhIL+AuiKL2 TT(L*<QTGFTT(F$6qTAFTT+v.@TAF**1flCCrc   zaten::narrowc                \    | j                  d||      }t        j                  | ||||      S )Nr:  r   )rY   r	   r   )r]   rz   r   rB  lengthrE  s         rb   r0   r0     s.    
$$ueV
$C((EEPSTTrc   zaten::flattenc                V   t        j                  |      }|dk(  r|S |dk(  r#|dk(  s
|G||dz
  k(  r?| j                  d||      S |dk(  r&|dk(  s
|||dz
  k(  r| j                  d||dz         S |t        j                  dd	      S |dk  r||z   }t        j                  | ||||      S )
Nr   r   Flattenr~   r   rL  r   zfONNX and PyTorch use different strategies to split the input. Input rank must be known at export time.)r	   rm   rY   r   _flatten_helper)r]   rz   	start_dimend_dimr   s        rb   r    r      s     
*
*5
1C
axA~b=S_C!G1C44	54;;	ab=S_C!G1C44	514==
{--7
 	
 {-**1eYMMrc   zaten::linalg_vector_normr   c                6    t        j                  | |||||      S r   )r	   _linalg_vector_norm_helper)r]   r^   ordr   keepdimrO   s         rb   r+   r+     s      55asCRWXXrc   zaten::embedding_bagc
                >    t        j                  | |||||||||	
      S r   )r	   _embedding_bag_helper)
r]   embedding_matrixr  offsetsscale_grad_by_freqr   sparseper_sample_weightsinclude_last_offsetpadding_idxs
             rb   r   r     s5     00	 rc   zaten::embedding_renormc           
     d   | j                  d|      }| j                  d||      }t        |      }|dk(  rd}n"|dk(  rd}nt        j                  d| d|      | j                  ||dgd	      }| j                  d
|| j                  dt	        j
                  d                  }	t	        j
                  |      }| j                  d||	      }
| j                  d||
      }| j                  d| j                  d||      ||      }| j                  d|t        j                  | |dg      |      S )Nr  r}   r   ReduceL1rL  ReduceL2z8Unsupported: ONNX export of embedding_renorm with norm: z. Only 1. and 2. are supported.)axes_irH  r:  rM   gHz>rP   r  r/  WhereGreaterr   )rY   r   r   r   rZ   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               rb   r   r     sI    TT(G,NTT(FN;N^F{		1	''Fvh O, ,
 	

 $$y.!QR$S 44"ADDU\\$=OD$P ||H%HTT%#78FDD?DD	Y+X6	 44))!^aSA	 rc   zaten::chunkc                   | j                  d| j                  d|      |d      }| j                  d|| j                  dt        j                  dgt        j                        	            }| j                  d
| j                  d||      |      }t	        j
                  | ||d       | j                  d|| j                  d||            g} | j                   dg|ddi}t        | |||      S )Nr}   r   r   r~   rK  rM   r   rN   rP   r  r:  r/  r   r   )rY   rZ   r[   r=  rs   r   r@   )r]   r^   chunksr   r  chunk_size_s
chunk_size	chunk_vecs           rb   r   r     s     ttHadd7D13qtAH44vqttJaS

0StTL eQTT%<@&IJ 	a\48	UHadd5*lCDI X4	4!4ID)S))rc   zaten::normalc	                    |-t        j                  |      st        j                  | ||d       }t        j                  | || j                  d|            }	t        | |	|      S )NRandomNormalLike)r	   ri   rs   r   r4  rY   r   )
r]   meanstdsizes	generatorrO   layoutdevice
pin_memoryr   s
             rb   r1   r1     sX    " !9!9%!@}}QeT2ZZ3%7 >?Fq&$rc   zaten::atleast_1dc                :   t        j                  |      rt        j                  |      rt        j                  |      }g }|D ]k  }|}t        j                  |      }|dk(  r<t        j
                  | || j                  dt        j                  dg                  }|j                  |       m  | j                  dg| S t        j                  |      }|dk(  r<t        j
                  | || j                  dt        j                  dg                  }|S )Nr   rM   r   rP   SequenceConstruct)
r	   r   r   r   rm   r   rY   rZ   r[   r   r]   r^   r   new_tensor_listr[   
new_tensortensor_ranks          rb   r   r     s   
   &?+J+J4+P%2248! 	/FJ)::6BKa,<<z144
ELL!<M4#N
 "":.	/ qtt':/::!2248Ka..tQTT*ellA3.?T@
 Krc   zaten::atleast_2dc                   t        j                  |      rt        j                  |      rt        j                  |      }g }|D ]  }|}t        j                  |      }|dk(  r>t        j
                  | || j                  dt        j                  ddg                  }n|dk(  rt        j                  | |dg      }|j                  |         | j                  dg| S t        j                  |      }|dk(  r?t        j
                  | || j                  dt        j                  ddg                  }|S |dk(  rt        j                  | |dg      }|S )Nr   rM   r   rP   r  r#  r	   r   r   r   rm   r   rY   rZ   r[   r   r   r$  s          rb   r   r   6  sR      &?+J+J4+P%2248! 	/FJ)::6BKa,<<z144
ELL!Q<P4#Q
 !,>>z1#
 "":.	/ qtt':/::!2248Ka..tQTT*ellAq6.BTC

 K 
	00D!EKrc   zaten::atleast_3dc                   t        j                  |      rt        j                  |      rt        j                  |      }g }|D ]  }|}t        j                  |      }|dk(  r>t        j
                  | || j                  dt        j                  g d                  }nV|dk(  r3t        j                  | |dg      }t        j                  | |dg      }n|dk(  rt        j                  | |dg      }|j                  |         | j                  d	g| S t        j                  |      }|dk(  r?t        j
                  | || j                  dt        j                  g d                  }|S |dk(  r4t        j                  | |dg      }t        j                  | |dg      }|S |dk(  rt        j                  | |dg      }|S )
Nr   rM   )r   r   r   rP   r   r)  r   rL  r#  r*  r$  s          rb   r   r   W  s      &?+J+J4+P%2248! 	/FJ)::6BKa,<<z144
ELL<S4#T
 !,>>z1#
 ->>z2$
 !,>>z2$
 "":.%	/& qtt':/::!2248Ka..tQTT*ell9.ETF
 K 
	00D!E00D"F K 
	00D"FKrc   zprim::ConstantChunkc           
     h   | j                  d|      }| j                  dt        j                  |gt        j                              }| j                  d||d      }| j                  dt        j                  dgt        j                              }| j                  dt        j                  |gt        j                              }| j                  dt        j                  |dz
  gt        j                              }	| j                  d	||	      }
| j                  d
|
|      }g }t	        |      D ]u  }| j                  dt        j                  |dz   gt        j                              }| j                  d||      }|j                  | j                  d||||             |}w |S )Nr   rM   rN   rP   r}   r   r~   r   r:  r  r/  r;  )rY   rZ   r[   r=  r   r   )r]   r^   r  r   input_shaperC  input_shape_dimrB  r  chunk_size_minus_1input_shape_dim_shift	chunk_dimrD  r{   r&   rE  s                   rb   r5   r5     sb   $$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9KLU1:>I
C6] Zq1ugUZZ)PQdd5)U+

144uc489	
 Jrc   zaten::hstackc                   t        | |      }| j                  d|| j                  dt        j                  dt        j                                    }| j                  d|      }| j                  d|      }| j                  dt        j                  dt        j                              }| j                  d	||      }t        j                  | d
|dd      \  }\  }}	}
|j                  d|dd      }t        j                  |j                  |       |	j                  d|dd      }t        j                  |	j                  |       |j                         j                         }|S )Nr   rM   r   rN   rP   r   rJ  r   r  r  rL  )r  r  r  r  )r   rY   rZ   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                 rb   r#   r#     sQ   Q,K44	Zauzz!BCL
 g|4ttF$67Zauzz)JKI44!19=L 	$$QlQPQR	.	-	 ##k! $ I 
/55yA$''k! ( K 
177E!((*FMrc   zaten::vstackc                D    t        | |      }| j                  d|dd      S )Nr  r   r  )r   rY   )r]   r   s     rb   rG   rG     s&    Q,K44$k!4JJrc   )r]   jit_utils.GraphContextr^   _C.Valuer_   floatr`   r?  )r]   r=  )F)r   r  r   r   r   r  r   )r   )r   N)
r]   r=  rz   r>  r2   r>  r   r>  rc  r>  )r]   r=  r   zSequence[int] | Noner  bool)NNNNNN)r]   r=  r^   ztorch._C.Value)r]   r=  r   r>  )f__doc__
__future__r   	functoolsr   r  typingr   rZ   r   torch._Cr   rS  
torch.onnxr   r   r	   r
   rV  r   rs   r   torch.onnx._internalr   r   __all__partialonnx_symbolic_onnx_symbolicquantized_args
parse_argsr"   r   r   r   r7   r<   r(   r3   _apply_paramsr   r   r!   r;   r   r.   r-   r   r   r   r   r   r)   r4   r   r   rB   r  rE   rC   r>   r   r:   r8   r@   r?   rD   r\  r   r6   r9   r2   r*   r,   r   r  r=   rA   rF   r/   r&   r%   r'   r  r  r  r  r  r$   r0   r    r+   r   r   r   r1   r   r   r   r5   r#   rG    rc   rb   <module>rP     s   / "  
     %  9:x #""<#=#=RH  !%Cc* + & "" > >D !"C%

 & #

 !"C%

 & #

 - - %Cc*3 + &  3 !"LQxx #xv %&C%P & 'P +o++,@!YOP +o++,@!YOP +o++,@!YOP +o++,?HMN +o++,A1hOP  +o++,BAxPQ +o++,@!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rc   