
    Vh^                       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 erdd	lmZ g d
Z ej8                  ej:                  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jR                  d#d$d%      g&       ed' ejR                  d(d)d%      g&       ed* ejR                  d+d,d%      g&       ed- ejR                  d.d$d/      g&       ed0 ejR                  d1d)d/      g&       ed2 ejR                  d3d,d/      g&       ed4 ejR                  d5d)d6      g&      dd7                                                 Z* ed8       ej>                  ddddddd      	 	 dd9              Z+ ed:       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dA      ddB       Z/ edC      ddD       Z0 edE      ddF       Z1 edG      ddH       Z2 edI      ddJ       Z3 edK      ddL       Z4 edM      dddN       Z5 edO      ddP       Z6 edQ      ddR       Z7 edS      ddT       Z8 edU       ej>                  d      ddV              Z9 edW      ddX       Z: edY       ej@                  dddd      ddZ              Z; ed[       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da       ej@                  dddd?      dddb              Z? edc       ej@                  dd      dddd              Z@ ede      ddf       ZA edg       ej@                  dddd      dddh              ZB edi       ej@                  dddd      dddj              ZC edk       ej@                  ddd      dddl              ZDddmZE edn      dddo       ZF edp       edq       edr      dds                     ZG edt       edu       edv      ddw                     ZH edx      	 	 	 	 	 	 	 	 	 	 ddy       ZI edz      dd{       ZJ ed|      dd}       ZK ed~      dd       ZL ed       ej@                  dd      dd              ZM ed       ej>                  dd      ddd              ZN ed      ddd       ZO ed      dd       ZP ed      dd       ZQ ed      dd       ZR ed      dd       ZS ed      dd       ZT ed       ed      dd              ZU ed       ed      dd              ZV	 	 ddZWddZXddZY ed       ej@                  ddddd      dd              ZZ ed      dd       Z[ ed       ej>                  ddd       ej@                  ddd      dd                     Z\ 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       Za ed      dd       Zb ed      dd       Zc ed      dd       Zd ed      dd       Ze ed      dd       Zf ed      dd       Zgy)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                   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tensorrP   r	   _op_with_optional_float_cast)gselfmin_valmax_valscalar_types        K/home/dcms/DCMS/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_nonerZ   	onnx_type)r\   rP   r^   s     rc   _cast_if_not_nonez clamp.<locals>._cast_if_not_nonev   sC    o&>&>v&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:"??64c  Q	!T3 7==rd   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 )Nrg   rh   r   rS   rT   rU   Max
rZ   r   rW   rX   rk   r	   rn   opset9unusedr]   )r^   r_   ro   rp   s       rc   r   r           $$vs!:!:!E!Ed!K!U!U!W$
XC'',1mmA;;vtS#B
 	
 ;;udCb
 	
rd   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 )Nrg   rh   r   rS   rT   rU   Minrs   )r^   r_   rp   ro   s       rc   r   r      rv   rd   zaten::relu6c                f   t         j                  j                  |t         j                  j                        }| j	                  dt        j                  d|j                                     }| j	                  dt        j                  d|j                                     }t        | |||      S )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 E7G,,rd   zaten::selectic                ,    | j                  d|||      S )NGatheraxis_irZ   )r^   r_   dimr'   s       rc   r=   r=      s    
 44$c422rd   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   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   rt   r   _unsqueeze_helperexpandrn   masked_filllistr.   _slice_helpersysmaxsize_reshape_helperr   rW   rX   rm   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+, 	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   r4   zonly support 4d inputDepthToSpaceCRD)blocksize_imode_s)r	   rn   _unimplementedrZ   )r^   r_   upscale_factorr   s       rc   r4   r4   I  sK     ++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    t        j                  | ||      S N)r	   _interpolate_helper)namer   interpolate_modes      rc   _interpolater   R  s    : ..tS:JKKrd   zaten::__interpolatec           	     8    t        j                  | ||||||      S r   )r	   __interpolate_helper)r^   r{   r>   scale_factormodealign_cornersrecompute_scale_factor	antialiass           rc   __interpolater   r  s'     //	5$dM;Q rd   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   rZ   )r^   r_   r   r'   sparse_grads        rc   r"   r"     s@     ''S9--h8MNN44 $c4::rd   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   rg   rh   )
r   rW   rX   r	   _maybe_get_scalar	_is_valuerZ   rk   rt   	expand_as)r^   r_   r   r'   srcsrc_types         rc   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  
 	
rd   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 )
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                ~    t        j                  | t        j                  | ||            }| j                  d||      S )NGatherND)rt   nonzeror   rZ   )r^   r_   maskr'   s       rc   r/   r/     s4    NN1f..q$=>E44
D%((rd   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   )
rt   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"$[[E5#3#3QC#89F 44T5&11rd   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SequenceLengthrN   r   rQ   )	r	   _is_tensor_listr   r   rZ   r>   r[   r   _squeeze_helper)r^   r_   sz_0s      rc   _lenr     s{     	''-99;!88tt$d++4j%2B2BA32GHID**1dQC88rd   zaten::__getitem_c                r    t        j                  |      r| j                  d||      S ddlm}  || ||      S )N
SequenceAtr   )
__getitem_)r	   r   rZ   torch.onnx.symbolic_opset9r   )r^   r_   r|   getitems       rc   r   r     s5    &&t,ttL$**Dq$""rd   zaten::_set_itemc                P    | j                  d||      }| j                  d|||      S )NSequenceEraseSequenceInsertr   )r^   tensor_listr|   rK   s       rc   	_set_itemr     s*    $$Q7K44 +q!44rd   zaten::appendc                (    | j                  d||      S Nr   r   )r^   r_   r\   s      rc   r   r     s    44 $//rd   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   rZ   rt   r   )r^   r_   otheralphatensor_list_nodetensorslts           rc   r   r     s      &?+J+J4+P ::<  "&;;"11O  "..u5 	-A%q!,A	-::aue,,rd   zaten::insertc                *    | j                  d|||      S r  r   )r^   r_   posr\   s       rc   r*   r*     s    44 $44rd   z	aten::popc                (    | j                  d||      S Nr   r   r^   r   r   s      rc   r5   r5         44c22rd   zaten::Deletec                (    | j                  d||      S r  r   r  s      rc   r   r     r  rd   z	aten::catc                    t        j                  |      rt        j                  | ||      S t        j                  |dd      }| j                  d||      S )Nr|   r   ConcatFromSequencer   )r	   r   rt   r   r   rZ   r  s      rc   r   r     sO     &&{3zz![#..((c59tt(+ctBBrd   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   rt   rC   r   rZ   r  s      rc   rC   rC     sO    &&{3||A{C00((c59tt(+catPPrd   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	            rc   _unique2r     s8     ,-44$ ,0 ,(Ax& ov%%rd   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
             rc   rF   rF   #  s:    
 ,-44$sVQ ,0 ,(Ax& ov%%rd   z
aten::topkc           	     :    t        j                  | ||||||      S )N)largestr  out)r	   _topk_helper)r^   r_   kr   r#  r  r$  s          rc   rD   rD   .  s&     ''	4CS rd   z
aten::sortc                6    t        j                  | ||||      S N)	decendingr$  r	   _sort_helper)r^   r_   r   r)  r$  s        rc   r?   r?   6  s     ''4	sSSrd   zaten::argsortc                @    t        j                  | ||||      \  }}|S r(  r*  )r^   r_   r   r)  r$  _indicess          rc   r   r   <  s*     !--	4	sJAw Nrd   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MulrN   
   rQ   r   )r	   _is_fprZ   r[   r\   pow)r^   r_   decimalsmulr;   s        rc   r;   r;   E  s     !!$'1}ttGT""
$$udADDU\\#b(BS5TDU
VCDD#E44uadd:u||CBM<R/SdT rd   zaten::remainderc                    t        j                  |      st        j                  |      rt        j                  | ||      S | j	                  d||d      S )NModr   )fmod_i)r	   r3  rt   r9   rZ   )r^   r{   r  s      rc   r9   r9   S  sI    e$(>(>u(E5%0044ueA4..rd   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   rN   rO   rQ   AddSlicer   )r	   _is_split_staticrZ   r   r   r   r   r[   r\   longr   r   rt   rA   )r^   r_   split_size_or_sizesr   _outputs	split_outrK   split_sizesstartaxisresr|   ends                rc   rA   rA   Z  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   )rA   )r^   r_   rC  r   rA  s        rc   r@   r@     s     D+sH55rd   zaten::unbindc                    |J| j                  d|| j                  dt        j                  dt        j                              |d      S t	        j
                  | |||      S )Nr;  rN   r   rO   rQ   r   )r   
keepdims_i)rZ   r[   r\   r?  rt   rE   )r^   r_   r   rA  s       rc   rE   rE     sb     ttDDU\\!5::%FDG  
 	
 }}Qc844rd   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  rN   rQ   Sizer   rO   Subr1     rg   rh   r   r   r   r   	Transposeperm_i)r	   r   _is_list_is_scalar_listrZ   rt   r>   r[   r\   rn   int64_C_onnxTensorProtoDataTypeINT64r   opset10flip)r^   r{   r3   pad_lenr   	extensionpaddings	padding_cs           rc   _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rd   zaten::constant_pad_ndc                    d}t        j                  |      }t        j                  ||      }t        | ||      }| j	                  d||||      S )NconstantPadr   )r	   r   _if_scalar_type_asr^  rZ   )r^   r{   paddingvaluer   r3   s         rc   r   r     sP    D--e4E..ue<E
 E7
3C44uc5466rd   zaten::reflection_pad1dzaten::reflection_pad2dzaten::reflection_pad3dc                J    d}t        | ||      }| j                  d|||      S )Nreflectra  rb  r^  rZ   r^   r{   rd  r   r\  s        rc   r7   r7     s.     D%a8H44uht444rd   zaten::replication_pad1dzaten::replication_pad2dzaten::replication_pad3dc                J    d}t        | ||      }| j                  d|||      S )Nedgera  rb  rh  ri  s        rc   r:   r:     s.     D%a8H44uht444rd   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	replicaterg  r`  circularzUnrecognized padding mode )	r	   r   r:   r7   r   rt   _pad_circularr   r   )r^   r{   r3   r   re  s        rc   r3   r3     s     %%dC0D{q%--		a,,		q%e44		##Auc22''*DTF(KUSSrd   zaten::linalg_detc                &    | j                  d|      S )NDetr   )r^   r_   s     rc   r+   r+     s    44trd   zaten::logdetc                B    t        j                  | t        | |            S r   )rt   logr+   )r^   r{   s     rc   r-   r-     s    ::aAu-..rd   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   rO   s    rc   _get_arange_dtypez!arange.<locals>._get_arange_dtype
  s    00<rd   rN  c              3  <   K   | ]  }t        |t                y wr   )
isinstancer   ).0vals     rc   	<genexpr>zarange.<locals>.<genexpr>  s     Csjc2Cs   rN   r   rO   rQ   r   Ranger   )rG  rP   r      r   )rD  rG  steprP   rz   )rD  rG  rP   ru  zwith z
 arguments)
r   allr[   rT  rZ   r\   r	   _arange_cast_helperrP   r   )r^   argsrx  rP   rD  rG  delta_defaulttype_r  start_defaultr-  s              rc   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
 	
rd   zaten::_dim_arangec           
         | j                  d|      }| j                  d|| j                  dt        j                  |            d      }t        | |dd d d       S )Nr   r~   rN   rQ   r   r   r   )rZ   r[   r\   r   )r^   liker   
like_shapestops        rc   _dim_aranger  P  s^     gt$J44*add:u||C7HdIRS  D !T1dD$//rd   z
aten::size)quantize_outputc                X    || j                  d|      S t        j                  | ||      S )Nr   )rZ   r	   _size_helperr^   r_   r   s      rc   r>   r>   Z  s/     {ttGT""''455rd   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   rN   rQ   r   rO   EqualIfrN  )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   rn   _get_tensor_dim_sizer[   r\   r  onesrT  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++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::rd   zaten::unsqueezec                    t        j                  |      rt        j                  |dd      }t        j                  | ||g      S )Nr|   r   )r	   r  r   r   r  s      rc   rG   rG     s;    ##C(((c59,,Qse<<rd   zaten::mmc                .    | j                  d||dd      S )NGemmg        g      ?)beta_falpha_fr   )r^   r_   r  s      rc   r0   r0     s    44eC4==rd   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   rj   r   r   rW   rX   UINT8rt   r   rZ   r'   )r^   r_   r'   r.  s       rc   r'   r'     s    &&u-!..u5' 7|q
''.$$U+((33E:((../ NN1e,E44
D%00<<4''rd   zaten::index_fillc                    t        j                  | |||      \  }}t        j                  |      }t        j                  ||      }t	        j
                  | ||d       }t        | ||||      S r   )r	   _index_fill_reshape_helperr   rc  rt   r   r<   )r^   r_   r   r'   re  expanded_index_shapeexpanded_indexexpanded_values           rc   r&   r&     sm    +:+U+U	4e,(. --e4E..ud;E]]1e-A4HN1dC@@rd   zaten::index_copyc                V    t        j                  | |||      \  }}t        | ||||      S r   )r	   r  r<   )r^   r_   r   r'   r   _expanded_index_shaper  s          rc   r(   r(     s6    ,;,V,V	4e-)> 1dC88rd   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 )Nrg   rh   BitShiftRIGHTdirection_srN   rN  rO   rQ   PowDivr   rW   rX   rm   rZ   rk   r  r[   r\   float32r	   r3  rU  rV  rY   )r^   r_   r  twotwo_powrshifts         rc   	__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Mrd   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 )Nrg   rh   r  LEFTr  rN   rN  rO   rQ   r  r1  r  )r^   r_   r  r  r  lshifts         rc   	__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Mrd   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<  rN   rN  rQ   rM  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    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rd   c           	         | j                  dt        j                  dd||gdz              }| j                  d||      S )NrN   r   rN  rQ   ra  )rZ   r[   r   )r^   r{   	padding_h	padding_wr3   s        rc   _get_im2col_padded_inputr  8  sC     $$z5#3#3Q9i4PST4T#U$
VC44uc""rd   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 )	NrN   r   rQ   r   r1  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    QqttJQtHIIq%j%,,q/!JKKtt{ADDU\\(XBU5VDW 44))!Y<))!-=sC	Zrd!34   rd   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 )NrN   rN  rQ   r   r   r   r~   r   r   rO  )r   r   rN  r   r   r   rP  )	r>   rZ   r[   r\   r  r  r  r	   r   )r^   r{   kernel_sizedilationrd  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<    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Crd   zaten::narrowc                \    | j                  d||      }t        j                  | ||||      S )Nr<  r   )rZ   r	   r   )r^   r{   r   rD  lengthrG  s         rc   r1   r1     s.    
$$ueV
$C((EEPSTTrd   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   rN  r   zfONNX and PyTorch use different strategies to split the input. Input rank must be known at export time.)r	   rn   rZ   r   _flatten_helper)r^   r{   	start_dimend_dimr   s        rc   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Mrd   zaten::linalg_vector_normr   c                6    t        j                  | |||||      S r   )r	   _linalg_vector_norm_helper)r^   r_   ordr   keepdimrP   s         rc   r,   r,     s      55asCRWXXrd   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
             rc   r   r     s5     00	 rd   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   ReduceL1rN  ReduceL2z8Unsupported: ONNX export of embedding_renorm with norm: z. Only 1. and 2. are supported.)axes_irJ  r<  rN   gHz>rQ   r  r1  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      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	 rd   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   rM  rN   r   rO   rQ   r  r<  r1  r   r   )rZ   r[   r\   r?  rt   r   rA   )r^   r_   chunksr   r  chunk_size_s
chunk_size	chunk_vecs           rc   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))rd   zaten::normalc	                    |-t        j                  |      st        j                  | ||d       }t        j                  | || j                  d|            }	t        | |	|      S )NRandomNormalLike)r	   rj   rt   r   r6  rZ   r   )
r^   meanstdsizes	generatorrP   layoutdevice
pin_memoryr   s
             rc   r2   r2     sX    " !9!9%!@}}QeT2ZZ3%7 >?Fq&$rd   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   rN   r   rQ   SequenceConstruct)
r	   r   r   r   rn   r   rZ   r[   r\   r   r^   r_   r   new_tensor_listr\   
new_tensortensor_ranks          rc   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@
 Krd   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   rN   r   rQ   r  r$  r	   r   r   r   rn   r   rZ   r[   r\   r   r   r%  s          rc   r   r   8  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Krd   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   rN   )r   r   r   rQ   r   r*  r   rN  r$  r+  r%  s          rc   r   r   Y  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Krd   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   rN   rO   rQ   r~   r   r   r   r<  r  r1  r=  )rZ   r[   r\   r?  r   r   )r^   r_   r  r   input_shaperE  input_shape_dimrD  r  chunk_size_minus_1input_shape_dim_shift	chunk_dimrF  r|   r'   rG  s                   rc   r6   r6     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	
 Jrd   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   rN   r   rO   rQ   r   rL  r   r  r  rN  )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$     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Mrd   zaten::vstackc                D    t        | |      }| j                  d|dd      S )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   r@  )r^   r>  )F)r   r  r   r   r   r  r   )r   )r   N)
r^   r>  r{   r?  r3   r?  r   r?  re  r?  )r^   r>  r   zSequence[int] | Noner  bool)NNNNNN)r^   r>  r_   ztorch._C.Value)r^   r>  r   r?  )h__doc__
__future__r   	functoolsr   r  typingr   r[   r   torch._Cr   rU  
torch.onnxr   r   r	   r
   rX  r   rt   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>rR     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rd   