
    Yh^                    "   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j        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$          	 ddd&            Z' ed'           ej         dd"          dd(                        Z( ed) ej)        d*d+d,          g-           ed. ej)        d/d0d,          g-           ed1 ej)        d2d3d,          g-           ed4 ej)        d5d+d6          g-           ed7 ej)        d8d0d6          g-           ed9 ej)        d:d3d6          g-           ed; ej)        d<d0d=          g-          ddC                                                                                    Z* edD           ej        dd%d%d%d%d%d%          ddE                        Z+ edF           ej         dd"dd          dddG                        Z, edH           ej         dd"dd          ddI                        Z- edJ           ej         dd"dK          dddL                        Z. edM          ddN            Z/ edO          ddP            Z0 edQ          ddR            Z1 edS          ddT            Z2 edU          ddV            Z3 edW          ddX            Z4 edY          dddZ            Z5 ed[          dd\            Z6 ed]          dd^            Z7 ed_          dd`            Z8 eda           ej        d          ddb                        Z9 edc          ddd            Z: ede           ej         dd"d"d"          ddf                        Z; edg           ej         dd"d"d"d"          ddh                        Z< edi           ej         ddd"d"d"dK          dddj                        Z= edk           ej         dd"d"dK          dddl                        Z> edm           ej         dd"d"dK          dddn                        Z? edo           ej         dd"          dddp                        Z@ edq          ddr            ZA eds           ej         ddd"d"          dddt                        ZB edu           ej         ddd"d"          dddv                        ZC edw           ej         dd"d"          dddx                        ZDddyZE edz          ddd{            ZF ed|           ed}           ed~          dd                                    ZG ed           ed           ed          dd                                    ZH ed          dd            ZI ed          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                        ZVdd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          	 	 	 	 	 	 ddd            Za ed          dd            Zb ed¦          ddÄ            Zc edĦ          ddń            Zd edƦ          ddǄ            Ze edȦ          ddʄ            Zf ed˦          dd̄            ZgdS )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fgjit_utils.GraphContextself_C.Valuemin_valfloatmax_valc                   t           j                            |t           j        j                  }|                     dt          j        ||                                                    }|                     dt          j        ||                                                    }t          j	        | d|||d          S )NConstantdtypevalue_tClip   opset_before)
r   JitScalarType
from_valueFLOAToptorchtensorrW   r	   _op_with_optional_float_cast)rM   rO   rQ   rS   scalar_types        m/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/torch/onnx/symbolic_opset11.pyr#   r#   `   s     +66k'- K ddWK,=,=,?,?@@@   G ddWK,=,=,?,?@@@   G 7	64'       zaten::clampc                .     fd}t           j                            |t           j        j                  }|t           j        j        k    r |||          } |||          }t	          j        |          rt           ||          S t	          j        |          rt           ||          S t	          j        |          dk    r2t	          j        |          dk    rt	          j	         d|||d          S t           t           ||          |          S )Nc                    | >t          j        |           s*                    d| |                                          S | S )NCastto_i)r	   _is_nonera   	onnx_type)rc   rW   rM   s     rf   _cast_if_not_nonez clamp.<locals>._cast_if_not_nonev   sN    o&>v&F&F44__&&     Mrg   r   rZ   r[   r\   )
r   r^   r_   	UNDEFINEDr	   rm   r   r   _get_tensor_rankrd   )rM   rO   minmaxro   re   s   `     rf   r   r   t   s7        +66k'1 K k/999[11[11$$ >D#&&&		!#	&	& >D#&&& ,S11Q66055::"?64c    Q	!T3 7 7===rg   zaten::clamp_minc                N   |                      d|t          j                            |                                                    }t          j        |          dk    r.t          j        |           }t          j	        | d|||d          S t          j	        | d||d          S )Nrj   rk   r   rZ   r[   r\   Max
ra   r   r^   r_   rn   r	   rq   opset9unusedrd   )rM   rO   rr   rs   s       rf   r   r           $$vs!:!E!Ed!K!K!U!U!W!W$
X
XC',,11mA;vtS#B
 
 
 	
 ;udCb
 
 
 	
rg   zaten::clamp_maxc                N   |                      d|t          j                            |                                                    }t          j        |          dk    r.t          j        |           }t          j	        | d|||d          S t          j	        | d||d          S )Nrj   rk   r   rZ   r[   r\   Minrv   )rM   rO   rs   rr   s       rf   r   r      ry   rg   zaten::relu6c                x   t           j                            |t           j        j                  }|                     dt          j        d|                                                    }|                     dt          j        d|                                                    }t          | |||          S )NrU   r   rV   rX      )	r   r^   r_   r`   ra   rb   rc   rW   r   )rM   inputre   rQ   rS   s        rf   r8   r8      s    +66{(. K ddQk&7&7&9&9:::   G ddQk&7&7&9&9:::   G E7G,,,rg   zaten::selectic                4    |                      d|||          S )NGatheraxis_ira   )rM   rO   dimr'   s       rf   r=   r=      s    
 44$c4222rg   zaten::index_putFc           
     ,    t          j        |          rt          j        |          }n|g}t          j        |d          }t	          |          dk    r|S t	          |          dk    rt          t	          |                    D ];}t          j        ||                   r                     d||                   ||<   <|d         }|dd          D ]}t          j	         ||          }                     d|           fd|D             }  j        dg|R dd	i}n|d         }|}	t          j        |	          rt          j
        |          }
|
|
dk    rt          j         ||	|          S t          j
        |	          }t          j
        |          }|9|7||k    r1t          j         |	t          t          ||                              }	t           ||	|          S                      d|          t          j         |d	g          }t          j                              d|          dgt	          |          gt           j        g
          }                     d|d          }t          j
        |          }
|
|
dk    rt          j         ||d           }t          j         ||          }t(          j                            |t(          j        j                  }|t(          j        j        k    r`t(          j                            |t(          j        j                  }||k    r*                     d||                                          }n|rt3          j        d|          |r}                     d                     d|          t7          j        dg|                                                    }                     d|||          }t           ||          }n                     d|||          }|S )Nbr      NonZeroShapec                h    g | ].}t          j        t          j        |d           dg          /S )N)r	   _unsqueeze_helperrw   expand).0indbroadcast_index_shaperM   s     rf   
<listcomp>zindex_put.<locals>.<listcomp>   sR     
 
 
  -6=C)>EEt 
 
 
rg   Concatr   r   axesstartsendsr   rj   rk   z'self does not have a valid scalar type.ConstantOfShaperV   rX   	ScatterND)r	   _is_packed_list_unpack_list
_parse_arglenrange_is_boolra   rw   r   rq   masked_fillr   listr.   _slice_helpersysmaxsizer   _reshape_helperr   r^   r_   rp   rn   r   SymbolicValueErrorrb   rc   rW   )rM   rO   indices_list_valuevalues
accumulateindices_listidx_r'   r   bool_inprank	mask_rank	self_ranksub_data_shapevalues_shapeself_scalar_typevalues_scalar_typezerosresultr   s   `                  @rf   r)   r)      sS    &'9:: ,&34FGG*+ +J<<J
<A
<1#l++,, 	I 	ID'T(:;; I%&TT)\$5G%H%HT"Q# 	. 	.CJq%--EE !We 4 4
 
 
 
 
 $	
 
 
 X8888R88P Q#H-- 	="3F;;DDAII)!T8VDDD'8BBI'8>>I%)	)) +<xeIy&A&A!B!B  "!T8V<<< !We 4 41!URDAA$2	144aS#l2C2C1DCK=  N 44"7PQ4RRL+F33DDAIIq&,==,QEEF"0;;k'1  ;4>>>(6AAK-7
 
 111TT&&/?/I/I/K/KTLLF	 Y'(QSWXXX 	8DD$L!,<,B,B,D,DEEE  
 

 k5%88Qf%%k477Mrg   zaten::pixel_shufflec                    t          j        |          }||dk    rt          j        dd          S |                     d||d          S )N   r4   zonly support 4d inputDepthToSpaceCRD)blocksize_imode_s)r	   rq   _unimplementedra   )rM   rO   upscale_factorr   s       rf   r4   r4   I  sP     +D11DDAII-o?VWWW44.4OOOrg   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cubicnamestrr   intinterpolate_modec                .    t          j        | ||          S N)r	   _interpolate_helper)r   r   r   s      rf   _interpolater   R  s    : .tS:JKKKrg   zaten::__interpolatec           	     6    t          j        | ||||||          S r   )r	   __interpolate_helper)rM   r~   r>   scale_factormodealign_cornersrecompute_scale_factor	antialiass           rf   __interpolater   r  s)     /	5$dM;Q  rg   zaten::gatherc                    t          j        |d          rt          j        dd          S |                     d|||          S )Nr   r"   zsparse_grad == TrueGatherElementsr   )r	   _maybe_get_constr   ra   )rM   rO   r   r'   sparse_grads        rf   r"   r"     sI     'S99 O-h8MNNN44 $c4:::rg   zaten::scatterc           
        t           j                            |          }t          j        |          }t          j        |          r|                     d||||          S t           j                            |          |k    rG|                     d|t           j                            |                                                    }|                     d||t          j	        | ||          |          S )NScatterElementsr   rj   rk   )
r   r^   r_   r	   _maybe_get_scalar	_is_valuera   rn   rw   	expand_as)rM   rO   r   r'   srcsrc_types         rf   r<   r<     s     (33C88H

+C
0
0C %% 
tt%tUCtDDD $//55AA$$ .99$??IIKK   C
 tttUF,<QU,K,KTW  
 
 	
rg   zaten::cumsumnonec                   |                      dt          j        |t          j                            }|r}|                                                                dk    rSt          j        |dd          }|                      d|t          j	        |          
                                          }n|}|                      d	||          }|S )
NrU   rV   rX   zprim::Constantr   rW   rj   rk   CumSum)ra   rb   rc   r   nodekindr	   
_get_constr   r^   rn   )rM   rO   r   rW   
dim_tensorparsed_dtypecastcsums           rf   r   r     s     j%,s%)*L*L*LMMJ ""$$(888&1%gFFttD{8FFPPRR  
 
 44$
++DKrg   zaten::masked_selectc                    t          j        | t          j        | ||                    }|                     d||          S )NGatherND)rw   nonzeror   ra   )rM   rO   maskr'   s       rf   r/   r/     s8    N1f.q$==>>E44
D%(((rg   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                              }| 	                    d|||          S )Nr   r   r   r   )
rw   r   r   r	   r   rb   
LongTensorr   r>   ra   )rM   rO   r   sourcer'   s        rf   r.   r.     s    N1f.q$==>>E ,Q8H"8N8NOOF*	qc""$$[E5#3QC#8#899  F 44T5&111rg   z	aten::lenc           
     J   t          j        |          s*|                                                                dk    r|                     d|          S t          | ||                     dt          j        dg                              }t          j        | |dg          S )Nzonnx::SplitToSequenceSequenceLengthrU   r   rX   )	r	   _is_tensor_listr   r   ra   r>   rb   r   _squeeze_helper)rM   rO   sz_0s      rf   _lenr     s     	'--,99;;!888tt$d+++4j%2BA32G2GHHIID*1dQC888rg   zaten::__getitem_c                ~    t          j        |          r|                     d||          S ddlm}  || ||          S )N
SequenceAtr   )
__getitem_)r	   r   ra   torch.onnx.symbolic_opset9r   )rM   rO   r   getitems       rf   r   r     sQ    &t,, #ttL$***DDDDDDwq$"""rg   zaten::_set_itemc                `    |                      d||          }|                      d|||          S )NSequenceEraseSequenceInsertr   )rM   tensor_listr   rK   s       rf   	_set_itemr    s0    $$Q77K44 +q!444rg   zaten::appendc                0    |                      d||          S Nr  r   )rM   rO   rc   s      rf   r   r     s    44 $///rg   z	aten::addc                j   t          j        |          rt          j        |          ru|                                }|                                dk    rt          j        dd          S t          j        |          }|}|D ]}|                     d||          }|S t          j	        | |||          S )Nzprim::ListConstructr   z6does not support adding dynamic tensor list to anotherr  )
r	   r   r   r   r   r   r   ra   rw   r   )rM   rO   otheralphatensor_list_nodetensorslts           rf   r   r     s     && 
?+J4+P+P 
 ::<<  ""&;;;"1O   ".u55 	- 	-A%q!,,AA:aue,,,rg   zaten::insertc                2    |                      d|||          S r  r   )rM   rO   posrc   s       rf   r*   r*     s    44 $444rg   z	aten::popc                0    |                      d||          S Nr  r   rM   r  r   s      rf   r5   r5         44c222rg   zaten::Deletec                0    |                      d||          S r  r   r  s      rf   r   r     r  rg   z	aten::catc                    t          j        |          rt          j        | ||          S t          j        |dd          }|                     d||          S )Nr   r   ConcatFromSequencer   )r	   r   rw   r   r   ra   r  s      rf   r   r     sY     &{33 Cz![#...(c599tt(+ctBBBrg   zaten::stackc                    t          j        |          rt          j        | ||          S t          j        |dd          }|                     d||d          S )Nr   r   r  r   r   
new_axis_i)r	   r   rw   rC   r   ra   r  s      rf   rC   rC     sY    &{33 Q|A{C000(c599tt(+catPPPrg   zaten::_unique2c                H    |                      d||d          \  }}}}|||fS )NUniquer   )sorted_ioutputsr   )	rM   rO   sortedreturn_inversereturn_countsu_indicesinverse_indicescountss	            rf   _unique2r'    s=     ,-44$ ,0 , ,(Ax& ov%%rg   zaten::unique_dimc                J    |                      d|||d          \  }}}}	|||	fS )Nr  r   )r   r  r  r   )
rM   rO   r   r   r!  r"  r#  r$  r%  r&  s
             rf   rF   rF   #  s?    
 ,-44$sVQ ,0 , ,(Ax& ov%%rg   z
aten::topkc           	     8    t          j        | ||||||          S )N)largestr   out)r	   _topk_helper)rM   rO   kr   r*  r   r+  s          rf   rD   rD   .  s-     '	4CS   rg   z
aten::sortc                4    t          j        | ||||          S N)	decendingr+  r	   _sort_helper)rM   rO   r   r0  r+  s        rf   r?   r?   6  s      '4	sSSSSrg   zaten::argsortc                >    t          j        | ||||          \  }}|S r/  r1  )rM   rO   r   r0  r+  _indicess          rf   r   r   <  s1     !-	4	s  JAw Nrg   zaten::roundc                   t          j        |          s|S |dk    r|                     d|          S |                     d||                     dt          j        t          d|                                        }|                     d|          }|                     d||                     dt          j        t          dd|z                                          S )Nr   RoundMulrU   
   rX   r   )r	   _is_fpra   rb   rc   pow)rM   rO   decimalsmulr;   s        rf   r;   r;   E  s     !$'' 1}}ttGT"""
$$udADDU\#b(BSBS5T5TDUU
V
VCDD#E44uadd:u|CBM<R<R/S/SdTT  rg   zaten::remainderc                    t          j        |          st          j        |          rt          j        | ||          S |                     d||d          S )NModr   )fmod_i)r	   r:  rw   r9   ra   )rM   r~   r
  s      rf   r9   r9   S  sV    e$$ 1(>u(E(E 15%00044ueA4...rg   zaten::splitc           
     "    t          j        ||          s`                     d|||          |S t          j        |          rt	          t          j        |                    |k    r fdt          j        |          D             }                     dt          j        dgt          j                            }                     dt          j        |gt          j                            }g }t          |          D ]M}	                     d|||	                   }
|
                                         d	|||
|                     |
}N|S  fd
t          |          D             S t          j         ||||          S )NSplitToSequencer   c                >    g | ]}t          j        |d g          S r   )r	   r   )r   rK   rM   s     rf   r   zsplit.<locals>.<listcomp>f  s:         1!Q<<  rg   rU   r   rV   rX   AddSlicec                    g | ]M}                     d                      dt          j        |gt          j                                      NS )r   rU   rV   rX   )ra   rb   rc   long)r   r   rM   	split_outs     rf   r   zsplit.<locals>.<listcomp>t  se     
 
 
  DDZqc)L)L)LMM 
 
 
rg   )r	   _is_split_staticra   r   r   r   rb   rc   rH  r   r   rw   rA   )rM   rO   split_size_or_sizesr   _outputssplit_sizesstartaxisresr   endrI  s   `          @rf   rA   rA   Z  s    +,?JJ  IDD*D2EcDRR	 +,?@@	O01DEEFF(RR   (56IJJ  K DDU\1#UZ-P-P-PDQQE44
EL#ej,Q,Q,Q4RRDC8__  dd5+a.  

144uc4@@AAAJ
 
 
 
 
 8__
 
 
 	
 |At%8#xHHHrg   zaten::split_with_sizesc                (    t          | ||||          S r   )rA   )rM   rO   rM  r   rL  s        rf   r@   r@     s     D+sH555rg   zaten::unbindc                    |M|                      d||                      dt          j        dt          j                            |d          S t	          j        | |||          S )NrB  rU   r   rV   rX   r   )r   
keepdims_i)ra   rb   rc   rH  rw   rE   )rM   rO   r   rL  s       rf   rE   rE     sm     ttDDU\!5:%F%F%FDGG  
 
 	
 }Qc8444rg   c                f   t          j        |          sAt          j        |          r-t          j        |          r|                     d|dd          }t          j        | ||                     dt          j        dg                              }t          j	        |          }|+|                     d|                     d	|                    }n5|                     dt          j        |t          j
        
                    }|                     d|                     d||                     dt          j        dt          j
        
                              |          }|                     d|t          j        j                  }|                     d||                     d|t          j        dgt          j
        
                    d          }t          j        | ||                     dt          j        ddg                              }|                     dt          j        | |dg          ddg          }t          j        | ||                     dt          j        dg                              }|                     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  rU   rX   NSizer   rV   Subr8     rj   rk   r   r   r   r   	Transposeperm_i)r	   r   _is_list_is_scalar_listra   rw   r>   rb   rc   rq   int64_C_onnxTensorProtoDataTypeINT64r   opset10flip)rM   r~   r3   pad_lenr   	extensionpaddings	padding_cs           rf   _prepare_onnx_paddingsrh    sl    +C00F$S))F +C00F
 dd'Q1dEE
 k!S!$$z5<;L;L$"M"MNNG+E22D|ttFADD%0011ttJT(M(M(MtNN	UD!$$z5<3U3U3U$VVWW I $$vs!<!B$
C
CCtt	y%,s%+2V2V2V 	 	
 	
    H .	8QTT*elB7.C.CTDD H ttKaA3!?!?AtOOH.	8QTT*elB4.@.@TAA H VXG,G,MNNIrg   zaten::constant_pad_ndc                    d}t          j        |          }t          j        ||          }t          | ||          }|                     d||||          S )NconstantPadr   )r	   r   _if_scalar_type_asrh  ra   )rM   r~   paddingvaluer   r3   s         rf   r   r     sV    D-e44E.ue<<E
 E7
3
3C44uc54666rg   zaten::reflection_pad1dzaten::reflection_pad2dzaten::reflection_pad3dc                Z    d}t          | ||          }|                     d|||          S )Nreflectrk  rl  rh  ra   rM   r~   rn  r   rf  s        rf   r7   r7     s4     D%a88H44uht4444rg   zaten::replication_pad1dzaten::replication_pad2dzaten::replication_pad3dc                Z    d}t          | ||          }|                     d|||          S )Nedgerk  rl  rr  rs  s        rf   r:   r:     s4     D%a88H44uht4444rg   z	aten::padr~   r3   r   ro  c                    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	replicaterq  rj  circularzUnrecognized padding mode )	r	   r   r:   r7   r   rw   _pad_circularr   r   )rM   r~   r3   r   ro  s        rf   r3   r3     s     %dC00D{q%---			a,,,			q%e444			#Auc222'(KT(K(KUSSSrg   zaten::linalg_detc                .    |                      d|          S )NDetr   )rM   rO   s     rf   r+   r+     s    44trg   zaten::logdetc                H    t          j        | t          | |                    S r   )rw   logr+   )rM   r~   s     rf   r-   r-     s    :aAu--...rg   aten::arangec                ~   d }t          |          dk    rt          d |D                       rt          j        }|                     dt          j        |d         |                    }|                     dt          j        |d         |                    }|                     dt          j        d|                    }|                     d	|||          S t          |          dk    st          |          d
k    rt          |          dk    rd }n ||d                   }t          j        | |d         |          \  }}}}|                     dt          j        d|                                                    }	|                     dt          j        d|                                                    }|                     d	|	||          S t          |          dk    st          |          dk    rot          |          dk    rd }n ||d                   }t          j        | |d         |d         |d         |          \  }
}}}|                     d	|||          S t          |          dk    r ||d                   }t          j        | |d         |d         |          \  }}}}|                     dt          j        d|                                                    }|                     d	|||          S t          j	        ddt          |           d          S )Nc                0    t          j        | d          } | S )Nr   )r	   r   rV   s    rf   _get_arange_dtypez!arange.<locals>._get_arange_dtype
  s    0<<rg   rX  c              3  @   K   | ]}t          |t                    V  d S r   )
isinstancer   )r   vals     rf   	<genexpr>zarange.<locals>.<genexpr>  s,      CCsjc22CCCCCCrg   rU   r   rV   rX   r   Ranger   )rQ  rW   r      r   )rN  rQ  steprW   r}   )rN  rQ  rW   r  zwith z
 arguments)
r   allrb   r^  ra   rc   r	   _arange_cast_helperrW   r   )rM   argsr  rW   rN  rQ  delta_defaulttype_r  start_defaultr4  s              rf   r   r     sX      4yyA~~#CCdCCCCC~La666  
 

 ddLa666  
 

 L%000  
 
 ttGUC777	Ta3t99>>t99>>EE &%d1g..E"1"E47%#
 #
 #
sE4 L%++--888  
 
 L%++--888  
 
 ttG]C???	Ta3t99>>t99>>EE &%d1g..E-AT!W$q'Qu
 
 
3t ttGUC...	Ta!!$q'**"1"ET!W$q'#
 #
 #
sE4 L%++--888  
 
 ttGUC777-9CII999
 
 	
rg   zaten::_dim_arangec           
         |                      d|          }|                      d||                      dt          j        |                    d          }t          | |dd d d           S )Nr   r   rU   rX   r   r   r   )ra   rb   rc   r   )rM   liker   
like_shapestops        rf   _dim_aranger  P  sm     gt$$J44*add:u|C7H7HdIIRS   D !T1dD$///rg   z
aten::size)quantize_outputc                ^    ||                      d|          S t          j        | ||          S )Nr   )ra   r	   _size_helperrM   rO   r   s      rf   r>   r>   Z  s2     {ttGT"""'4555rg   zaten::squeezec                   ||                      d|          S t          j        |          st          j        | ||g          S t          j        |dd          }t          j        |          }|}||dk     r||z  }t          j        ||          }|dk     r|||                      dt          j        |g                    }t          j	        | ||          }|                      dt          j
        dt          j                            }|                      d	||          }	t          j        | d
|	d          \  }
\  }}}t          j        |||g          }t          j        |j        |           |                     d|          }t          j        |j        |           |
S |}|dk    rEt#          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   rU   rX   r   rV   EqualIfrX  )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.)ra   r	   _is_constantr   r   rq   _get_tensor_dim_sizerb   rc   r  onesr^  r   add_op_with_blocksr   _add_output_to_blockblockwarningswarnr   )rM   rO   r   
input_rankadjusted_dimdim_sizedim_constantr>   	const_onecondif_op
if_contextelse_contextr4  squeeze_	identity_s                   rf   rB   rB   b  s>   
{ttIt$$$ ',, ?.q$>>>

$S#u
5
5C 1$77JL#''
"3D,GGHaJ&8+; ttJcU0C0CtDD+At\BBDDUZ-M-M-MDNN	ttGT9--/8/KtTA0
 0
 0
,)
L1 #2:tcUKK":#3X>>> OOJ55	"<#5yAAA C!||C#hh 66 (mm	
 "" hh HH		
 		
 		
 *1dSE:::rg   zaten::unsqueezec                    t          j        |          rt          j        |dd          }t          j        | ||g          S )Nr   r   )r	   r  r   r   r  s      rf   rG   rG     s@    #C(( :(c599,Qse<<<rg   zaten::mmc                6    |                      d||dd          S )NGemmg        g      ?)beta_falpha_fr   )rM   rO   r
  s      rf   r0   r0     s    44eC4===rg   zaten::indexc                   t          j        |          rt          j        |          }n|g}t          |          dk    r|d         }t          j        |          srt          j        |          s2t          j                            |          t          j        j	        k    r,t          j        | |          }|                     d||          S t          j        | ||          S )Nr   r   r   )r	   r   r   r   rm   r   r   r^   r_   UINT8rw   r   ra   r'   )rM   rO   r'   r5  s       rf   r'   r'     s    &u-- !.u55' 7||q
'.. 	1$U++	1(33E::(./ / N1e,,E44
D%000<4'''rg   zaten::index_fillc                    t          j        | |||          \  }}t          j        |          }t          j        ||          }t	          j        | ||d           }t          | ||||          S r   )r	   _index_fill_reshape_helperr   rm  rw   r   r<   )rM   rO   r   r'   ro  expanded_index_shapeexpanded_indexexpanded_values           rf   r&   r&     ss    +:+U	4e, ,(. -e44E.ud;;E]1e-A4HHN1dC@@@rg   zaten::index_copyc                \    t          j        | |||          \  }}t          | ||||          S r   )r	   r  r<   )rM   rO   r   r'   r   _expanded_index_shaper  s          rf   r(   r(     s;    ,;,V	4e- -)> 1dC888rg   zaten::bitwise_right_shiftzaten::__rshift_c                   t           j                            |t           j        j                  t           j                            |          k    rG|                     d|t           j                            |                                                    }t           j                            |t           j        j                  t           j        j        k    r|                     d||d          S |                     dt          j        dt          j	                  	          }t          j        |          s'|                     d|t          j        j                  }|                     d
||          }|                     d|t           j                            |                                                    }|                     d||          }|S )Nrj   rk   BitShiftRIGHTdirection_srU   rX  rV   rX   PowDivr   r^   r_   rp   ra   rn   r  rb   rc   float32r	   r:  r_  r`  r`   )rM   rO   r
  twotwo_powrshifts         rf   	__rshift_r    s   
  ++{(2 		"	-	-d	3	34 4 *55d;;EEGG  
 
 	!,,T;3L3VWW$*	+ 	+ ttJetAAA
$$z5<#G#G#G$
H
HC!$'' LVU)D)JKKdd5#u%%Gdd&11$77AACC   G
 TT%w''FMrg   zaten::bitwise_left_shiftzaten::__lshift_c                   t           j                            |t           j        j                  t           j                            |          k    rG|                     d|t           j                            |                                                    }t           j                            |t           j        j                  t           j        j        k    r|                     d||d          S |                     dt          j        dt          j	                  	          }t          j        |          s'|                     d|t          j        j                  }|                     d
||          }|                     d|t           j                            |                                                    }|                     d||          }|S )Nrj   rk   r  LEFTr  rU   rX  rV   rX   r  r8  r  )rM   rO   r
  r  r  lshifts         rf   	__lshift_r    s   
  ++{(2 		"	-	-d	3	34 4 *55d;;EEGG  
 
 	!,,T;3L3VWW$*	+ 	+ ttJet@@@
$$z5<#G#G#G$
H
HC!$'' LVU)D)JKKdd5#u%%Gdd&11$77AACC   G
 TT%w''FMrg   c                <   |                      d||                      dt          j        |dz                                }|                      d||                      dt          j        ||dz
  z                                }|                      d|                      dt          j        d                    ||                      dt          j        |                              }t          j        d||z  |          }|                      d|                    d                    }t          j        | |dg          }t          j        | ||                      dt          j        d	dg                              }	|                      d||	          }
|
S )
NrE  rU   rX  rX   rW  r   r  r   r   )ra   rb   rc   r   rG   r	   r   r   )rM   input_dkernel_size_d
dilation_d	padding_dstride_dblocks_dblocks_d_indiceskernel_gridkernel_mask
block_masks              rf   _get_im2col_indices_along_dimr    s    ttwZi!m1L1LMM H tt	ZjMA<M.N!O!OPP H tt	Za11	Zh!7!788	  ,q-*"<jIIK$$z;+@+@+C+C$DDK '8	aS  "1	;Zr1g1F1FGG K e-{;;Jrg   c           	         |                      dt          j        dd||gdz                      }|                      d||          S )NrU   r   rX  rX   rk  )ra   rb   r   )rM   r~   	padding_h	padding_wr3   s        rf   _get_im2col_padded_inputr  8  sI     $$z5#3Q9i4PST4T#U#U$
V
VC44uc"""rg   c                <   t          | ||                     dt          j        d                              }t          | ||                     dt          j        d                              }|                     d||                     dt          j        ||z                                }|                     dt	          j        | |dg          t	          j        | |dg          |                     dt          j        dg                    d          S )	NrU   r   rX   r   r8  r   r   r   )r>   ra   rb   rc   r	   r   )rM   r~   kernel_hkernel_w	batch_dimchannel_dimchannel_unfoldeds          rf   _get_im2col_output_shaper  @  s    QqttJQtHHIIIq%j%,q//!J!JKKKtt{ADDU\(XBU5V5VDWW  44)!Y<<)!-=sCC	Zrd!3!344    rg   zaten::im2colisc           
        t          | ||                     dt          j        d                              }t          | ||                     dt          j        d                              }|d         |d         }	}|d         |d         }}
|d         |d         }}|d         |d         }}t	          | ||||
|          }t	          | |||||	          }t          | |||          }t          | ||
|          }|                     d||d          }|                     d||d	          }|                     d
|g d          }t          j        | ||          S )NrU   rX  rX   r   r   r   r   r   r   rY  )r   r   rX  r   r   r   rZ  )	r>   ra   rb   rc   r  r  r  r	   r   )rM   r~   kernel_sizedilationrn  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                        rf   r%   r%   P  sg    1eQTT*el1ooTFFGGG1eQTT*el1ooTFFGGGF1IhH"1:wqzyI%a[(1+
J$QQhH6	7Hj)X  7	7Hj)X  ,AuhIIL+AuiKKL2 TT(L*<QTGGFTT(F$6qTAAFTT+v.@.@.@TAAF*1flCCCrg   zaten::narrowc                b    |                      d||          }t          j        | ||||          S )NrE  r   )ra   r	   r   )rM   r~   r   rN  lengthrQ  s         rf   r1   r1     s4    
$$ueV
$
$C(EEPSTTTTrg   zaten::flattenc                r   t          j        |          }|dk    r|S |dk    r*|dk    s|!||dz
  k    r|                     d||          S n2|dk    r,|dk    s|$||dz
  k    r|                     d||dz             S |t          j        dd	          S |dk     r||z   }t          j        | ||||          S )
Nr   r   Flattenr   r   rX  r   zfONNX and PyTorch use different strategies to split the input. Input rank must be known at export time.)r	   rq   ra   r   _flatten_helper)rM   r~   	start_dimend_dimr   s        rf   r!   r!     s     
*5
1
1C
axxA~~b==S_C!G1C1C44	54;;;	ab==S_C!G1C1C44	514===
{-7
 
 	
 {{-*1eYMMMrg   zaten::linalg_vector_normr   Sequence[int] | Nonekeepdimboolc                4    t          j        | |||||          S r   )r	   _linalg_vector_norm_helper)rM   rO   ordr   r  rW   s         rf   r,   r,     s      5asCRWXXXrg   zaten::embedding_bagc
                <    t          j        | |||||||||	
  
        S r   )r	   _embedding_bag_helper)
rM   embedding_matrixr5  offsetsscale_grad_by_freqr   sparseper_sample_weightsinclude_last_offsetpadding_idxs
             rf   r   r     s7     0	  rg   zaten::embedding_renormc           
        |                      d|          }|                      d||          }t          |          }|dk    rd}n"|dk    rd}nt          j        d| d|          |                      ||dgd	          }|                      d
||                      dt	          j        d                              }	t	          j        |          }|                      d||	          }
|                      d||
          }|                      d|                      d||          ||          }|                      d|t          j        | |dg          |          S )Nr  r   r   ReduceL1rX  ReduceL2z8Unsupported: ONNX export of embedding_renorm with norm: z. Only 1. and 2. are supported.)axes_irT  rE  rU   gHz>rX   r  r8  WhereGreaterr   )ra   r   r   r   rb   rc   r	   r   )rM   weightr5  max_norm	norm_typeunique_indicespartial_weightnorm_ipartial_weight_normpartial_weight_norm_scalespartial_weight_renorms               rf   r    r      s    TT(G,,NTT(FN;;N^^F{{			1		',v , , ,
 
 	

 $$y.!QR$SS 44"ADDU\$=O=OD$P$P  |H%%HTT%#788FDD??DD	Y+X66	  44)!^aSAA	  rg   zaten::chunkc                   |                      d|                      d|          |d          }|                      d||                      dt          j        dgt          j                  	                    }|                      d
|                      d||          |          }t	          j        | ||d           |                      d||                      d||                    g} | j         dg|R ddi}t          | |||          S )Nr   r   r   r   rW  rU   r   rV   rX   r  rE  r8  r   r   )ra   rb   rc   rH  rw   r   rA   )rM   rO   chunksr   r  chunk_size_s
chunk_size	chunk_vecs           rf   r   r     s    ttHadd7D113qtAAH44vqttJaS
0S0S0StTT L eQTT%<@@&IIJ 	a\488	UHadd5*lCCDDI X4	444!44ID)S)))rg   zaten::normalc	                    |+t          j        |          st          j        | ||d           }t          j        | ||                     d|                    }	t          | |	|          S )NRandomNormalLike)r	   rm   rw   r   r=  ra   r   )
rM   meanstdsizes	generatorrW   layoutdevice
pin_memoryr   s
             rf   r2   r2     sc    " !9%!@!@}QeT22Z3%7 > >??Fq&$rg   zaten::atleast_1dtorch._C.Valuec                6   t          j        |          rt          j        |          rt          j        |          }g }|D ]q}|}t          j        |          }|dk    r>t          j        | ||                     dt          j        dg                              }|	                    |           r | j        dg|R  S t          j        |          }|dk    r>t          j        | ||                     dt          j        dg                              }|S )Nr   rU   r   rX   SequenceConstruct)
r	   r   r   r   rq   r   ra   rb   rc   r   rM   rO   r  new_tensor_listrc   
new_tensortensor_ranks          rf   r   r     s-   
  && ;?+J4+P+P ;%2488! 	/ 	/FJ):6BBKa,<z144
EL!<M<M4#N#N 
 "":....qt':/::::!2488Ka.tQTT*elA3.?.?T@@
 
 Krg   zaten::atleast_2dc                   t          j        |          rt          j        |          rt          j        |          }g }|D ]}|}t          j        |          }|dk    r@t          j        | ||                     dt          j        ddg                              }n|dk    rt          j	        | |dg          }|
                    |            | j        dg|R  S t          j        |          }|dk    r@t          j        | ||                     dt          j        ddg                              }n|dk    rt          j	        | |dg          }|S )Nr   rU   r   rX   r  r/  r	   r   r   r   rq   r   ra   rb   rc   r   r   r0  s          rf   r   r   8  s     && ;?+J4+P+P ;%2488! 	/ 	/FJ):6BBKa,<z144
EL!Q<P<P4#Q#Q 

 !!,>z1#  
 "":....qt':/::::!2488Ka.tQTT*elAq6.B.BTCC
 
 
		0D!EEEKrg   zaten::atleast_3dc                   t          j        |          rt          j        |          rt          j        |          }g }|D ]}|}t          j        |          }|dk    r@t          j        | ||                     dt          j        g d                              }nU|dk    r1t          j	        | |dg          }t          j	        | |dg          }n|dk    rt          j	        | |dg          }|
                    |            | j        d	g|R  S t          j        |          }|dk    r@t          j        | ||                     dt          j        g d                              }nU|dk    r1t          j	        | |dg          }t          j	        | |dg          }n|dk    rt          j	        | |dg          }|S )
Nr   rU   )r   r   r   rX   r   r5  r   rX  r/  r6  r0  s          rf   r   r   Y  s     && ;?+J4+P+P ;%2488! 	/ 	/FJ):6BBKa,<z144
EL<S<S4#T#T 

 !!,>z1#  
 ->z2$  

 !!,>z2$  
 "":....qt':/::::!2488Ka.tQTT*el999.E.ETFF
 
 
		0D!EEE0D"FFF			0D"FFFKrg   zprim::ConstantChunkc           
        |                      d|          }|                      dt          j        |gt          j                            }|                      d||d          }|                      dt          j        dgt          j                            }|                      dt          j        |gt          j                            }|                      dt          j        |dz
  gt          j                            }	|                      d	||	          }
|                      d
|
|          }g }t	          |          D ]}|                      dt          j        |dz   gt          j                            }|                      d||          }|                    |                      d||||                     |}|S )Nr   rU   rV   rX   r   r   r   r   rE  r  r8  rF  )ra   rb   rc   rH  r   r   )rM   rO   r   r   input_shaperO  input_shape_dimrN  r"  chunk_size_minus_1input_shape_dim_shift	chunk_dimrP  r   r'   rQ  s                   rf   r6   r6     s   $$w%%K44
EL#ej$I$I$I4JJDdd8[$qdAAODDU\1#UZ%H%H%HDIIEj%,xuz*R*R*RSSJEL&1*UZHHH    DD9KLLU1:>>I
C6]]  Zq1ugUZ)P)P)PQQdd5)U++

144uc488999Jrg   zaten::hstackr  c                   t          | |          }|                     d||                     dt          j        dt          j                                      }|                     d|          }|                     d|          }|                     dt          j        dt          j                            }|                     d	||          }t          j        | d
|dd          \  }\  }}	}
|                    d|dd          }t          j        |j	        |           |	                    d|dd          }t          j        |	j	        |           |
                                                                }|S )Nr   rU   r   rV   rX   r   rV  r   r  r  rX  )r  r  r  r  )r   ra   rb   rc   rH  r   r  r   r  r  r   r  )rM   r  first_tensorfirst_tensor_shapefirst_tensor_dimr  equal_to_oneif_op_greaterif_context_equalelse_context_equalr4  	result_ifresult_elser   s                 rf   r$   r$     s   Q,,K44	Zauz!B!B!BCC L
 g|44ttF$677Zauz)J)J)JKKI44!19==L 	$QlQPQRRR	.	-	 ##k! $  I 
/5yAAA$''k! (  K 
17EEE!!((**FMrg   zaten::vstackc                T    t          | |          }|                     d|dd          S )Nr  r   r  )r   ra   )rM   r  s     rf   rH   rH     s,    Q,,K44$k!4JJJrg   )rM   rN   rO   rP   rQ   rR   rS   rR   )rM   rN   )F)r   r   r   r   r   r   r   rD  )r   N)
rM   rN   r~   rP   r3   rP   r   rP   ro  rP   )rM   rN   r   r   r  r  )NNNNNN)rM   rN   rO   r-  )rM   rN   r  rP   )h__doc__
__future__r   	functoolsr   r  typingr   rb   r   torch._Cr   r_  
torch.onnxr   r   r	   r
   rb  r   rw   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   rh  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    rg   rf   <module>rY     s   / . " " " " " "     



                     % % % % % %                9 8 8 8 8 8 8 8  )((((((: : :x #"<#=RHHH  !!%%Cc**   +* &% "!" > > > >D !""C%%

 

 

 &% #"

 !""C%%

 

 

 &% #"

 - - - - %%Cc**3 3 3 +* &%  3 !""LQx x x x #"xv %&&C%%P P P &% '&P +o+,@!YOOP   +o+,@!YOOP   +o+,@!YOOP   +o+,?HMMN   +o+,A1hOOP    +o+,BAxPPQ   +o+,@!WMMN  L L L	 	 	 	 	 	 	 8L %&&eUE5%OO   PO '& Cc3//; ; ; ; 0/  ;   Cc3//
 
 
 0/ ! 
& Cf--
 
 
 
 .-  
 %&&) ) ) '&)
 &''2 2 2 ('2  9 9 9 9 "### # # $## !""5 5 5 #"5
 0 0 0  0 - - - - -  5 5 5  5 3 3 3 3 3 3 3  3 %%C C C &% C Q Q Q Q  !!Cc3//& & & 0/ "!& "##Cc344& & & 54 $#& Cc3V<<    =<  Cc622T T T T 32 T   Cc622    32 !  C%%	 	 	 	 &% 	 !""/ / / #"/ Cc3//!I !I !I !I 0/ !IH ())Cc3//6 6 6 6 0/ *)6 Cc**
5 
5 
5 
5 +*  
56 6 6 6r '((7 7 7 7 )(7 ())())())5 5 5 *) *) *)5 )**)**)**5 5 5 +* +* +*5 T T T T( "##   $# / / /  / D
 D
 D
  D
N #$$C%%0 0 0 &% %$0 e<<<6 6 6 6 =< 6   /; /; /; /; ! /;d !""= = = #"= 
> > > > ( ( ( (& "##A A A $#A "##9 9 9 $#9 +,,!""   #" -,@ *++!""   #" ,+@( ( ( (V# # # #     CtT4880D 0D 0D 98  0Df U U U  U
   eU33Cc**N N N +* 43 ! N0 *++CdC55Y Y Y 65 ,+Y %&&Cc3S#sCHH   IH '&4 ())Cc3//" " " 0/ *)"J * * * *  
 
          , "##   $#2 "##   $#@ "##( ( ( $#(V %&&   '&(     > K K K  K K Krg   