
    Χg
              	       	   d dl Z d dlZd dlmc mZ d dlmZmZm	Z	m
Z
mZmZmZ d dlmZmZ  e j        ej        d          Z ed           e
j        ddd	          dMd
ej        fd                        Z ed           e
j        ddd	          dMd
ej        fd                        Z ed           e
j        ddd          dNd
ej        fd                        Z ed           e
j        dddd          dMd
ej        fd                        Z ed          dMd
ej        fd            Z ed          	 dMd
ej        fd            Z ed          	 dMd
ej        fd            Z ed           e
j        dddd          	 dMd
ej        fd                        Z ed           e
j        ddd          dOd
ej        fd                        Z  ed          dMd
ej        fd            Z! ed           e
j        dddd          dPd
ej        fd                         Z" ed!           e
j        dddddd          	 	 dQd
ej        fd$                        Z# ed%           e
j        ddddd          	 	 dQd
ej        fd&                        Z$d' Z% ed( e
j&        d)d*          g+          d,             Z' ed-          d
ej        fd.            Z( ed/           e
j        dddd          dMd
ej        fd0                        Z) ed1          d
ej        fd2            Z* ed3          	 dRd
ej        fd4            Z+ ed5           e
j        dddd          d
ej        fd6                        Z, ed7          d
ej        fd8            Z- ed9          d
ej        fd:            Z. ed;          d
ej        fd<            Z/ ed=          d
ej        fd>            Z0 ed?          d
ej        fd@            Z1 edA          d
ej        fdB            Z2 edC          d
ej        fdD            Z3 edE          d
ej        fdF            Z4 edG          d
ej        fdH            Z5 edI          d
ej        fdJ            Z6 edK          d
ej        fdL            Z7dS )S    N)
_constants_type_utilserrorssymbolic_helpersymbolic_opset11symbolic_opset9utils)	jit_utilsregistration   )opsetzaten::softmaxvinonegc                 2   |                      d||          }|r||                                                                dk    rRt          j        |dd          }|                      d|t          j        |                                                    }|S )NSoftmaxaxis_iprim::Constantr   dtypeCastto_iopnodekindr   
_get_constr   JitScalarType	onnx_type)r   inputdimr   softmaxparsed_dtypes         W/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/onnx/symbolic_opset13.pyr$   r$      s     dd9eCd00G 
""$$(888&1%gFF$$G+";L"I"I"S"S"U"U  
 
 N    zaten::log_softmaxc                 2   |                      d||          }|r||                                                                dk    rRt          j        |dd          }|                      d|t          j        |                                                    }|S )N
LogSoftmaxr   r   r   r   r   r   r   )r   r"   r#   r   	return_opr%   s         r&   log_softmaxr+   &   s     \555I 
""$$(888&1%gFFDDIK$=l$K$K$U$U$W$W  
 
	 r'   zaten::frobenius_normFc                 4   t          j        |d          }t          j        |          s+t          |          dk    r|                     d|d          S |                     d||          }t          j        | |||          }|                     d|          S )Nisr   ReduceL2
keepdims_iMulSqrt)r   _maybe_get_const	_is_valuelenr   _reducesum_helper)r   selfr#   keepdimdim_valsqrsumsqrs          r&   frobenius_normr<   2   s     .sD99G$W-- 4#g,,!2C2CttJt333
$$udD
!
!C.q#swOOOF44r'   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        |                                d          }|                                dk    r                     d||||          S t          j        |dd          }t          j        ||          }||||z  }nt!          j        d|          |g||z  z  }||z  }|r|
                    |                                dt          j        |                    }                     d||||          S )NSplitToSequencer   c                 >    g | ]}t          j        |d g          S )r   )r   _unsqueeze_helper).0r   r   s     r&   
<listcomp>zsplit.<locals>.<listcomp>I   s:         1!Q<<  r'   Constantr   r   value_tAddSlicec                     g | ]M}                     d                      dt          j        |gt          j                                      NS )
SequenceAtrC   rD   rE   r   torchtensorlong)rA   r   r   	split_outs     r&   rB   zsplit.<locals>.<listcomp>X   se     
 
 
  DDZqc)L)L)LMM 
 
 
r'   valueSplitr   outputsr   
split_size$Unknown dimension size not supported)r   _is_split_staticr   _is_packed_listr5   _unpack_listrL   rM   rN   rangeappend	_node_getr   r#   r   _get_tensor_dim_sizer   SymbolicValueError)r   r7   split_size_or_sizesr#   _outputssplit_sizesstartaxisresr   end	split_valrT   sizesplitsleftoverrO   s   `               @r&   splitri   =   s    +,?JJ 
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__
 
 
 	
  )*=*B*B*D*DgNNI}}ttGT#6sHtUUU +,?lSSJ/c::D|(DD+6   \TZ/0Fj H  hTT*el6&:&:T;;F44vc84DDDr'   zaten::split_with_sizesc                 (    t          | ||||          S Nri   r   r7   r`   r#   r_   s        r&   split_with_sizesrn   v   s    D+sH555r'   zaten::unsafe_splitc                 (    t          | ||||          S rk   rl   )r   r7   r^   r#   r_   s        r&   unsafe_splitrp   {   s     D-sH===r'   zaten::unsafe_split_with_sizesc                 (    t          | ||||          S rk   )rn   rm   s        r&   unsafe_split_with_sizesrr      s     At[#x@@@r'   zaten::tensor_splitc                 (   |                      dt          j        |t          j                            }t	          j        | |d          }|                      dt          j        dt          j                            }t          j        ||          rt          j        |	                                d          }|
                                dk    r|                      dt          j        dgt          j                            }g }	|J t          |dz
            D ]}}
|                      d||                      dt          j        |
gt          j                            d          }|	                    |                      d	||||                     |}~t          j        | ||          }|	                    |                      d	||||                     |	S t          j        |d
d          }t          j        ||          }||||z  }nt!          j        d|          ||z  }||z  }||dz   gz  }||z
  |gz  }|                      dt          j        ||z   t          j                            }|                      d||||          S t          j        |          rt          j        |          dk    rt          j        | ||                      dt          j        d                              }t	          j        | |d          }|                      d|t(          j        j                  }|                      dt          j        dgt          j                            }|                      d||d          }|                      d          }t/          j        | d|||dd          \  }\  }}|j        }t5          j        |          }t5          j        |          }t5          j        |          }|                     d||d          }|                     d||                     d||          d          }|                     d	||||          }|                     d||          }|                     d|          }t5          j        ||           t5          j        ||           |	                                                                }|                      d||                      dt          j        dt          j                            d          }t	          j        | |d          }t          j        | ||          }|                      d	||||          }|                      d||          S t          j        | ||          } |                      d| |          }|                      d||          }!|                      d| |          }|                      d|!|          }|                      d||                      dt	          j        | |d          |                    }|                      d||d          }||                      d|||          S |                      d||||          S )NrC   rD   rE   r      rP   Gatherr   rH   r   indices_or_sectionsrU   rQ   rR   r   r   ConcatSequenceEmptyLoop)rS   n_blocksrG   SequenceInsertIdentityDivModTileSubr>   )r   rL   rM   rN   opset11	unsqueezer   rV   r[   r   r#   rY   rZ   _size_helperr   r\   r   r]   
_is_tensor_get_tensor_rank_C_onnxTensorProtoDataTypeBOOLr
   add_op_with_blocksblockr	   _add_input_to_block_add_output_to_blockoutput)"r   r7   rv   r#   r_   rb   const_1re   ra   rc   r   rd   rT   rf   min_split_sizenum_splits_one_extrarg   rh   loop_lenloop_condition	padding_0final_splitslooploop_context_
loop_blockblock_input_itercondslicecond_outloop_out
last_slicedim_sizemin_split_size_plus_1s"                                     r&   tensor_splitr      s   
 44
ELEJ$G$G$G4HHDQa((Ddd:u|AUZ'H'H'HdIIG'(;XFF +I#-.A.F.F.H.H'RR	==??QDDU\1#UZ-P-P-PDQQEC'''8a<((  dd'DDU\1#UZ-P-P-PDQQ	    

144uc4@@AAA!.q$==CJJqttGT5#t<<===J$/&;
 

 3D#>><#!H,/:D   +#j0%!);(<<!55.9IIVh->ej Q Q Q  
 
 ttGT6#xtHHH 	"#677QI,-@AAQFF"/"ADDU\!__D$M$M
 
 $Q!44fgG4O4TUU DDU\1#UZ-P-P-PDQQ	dd8Y8KTUdVVttO,,#,#?vxqST$
 $
 $
 o|q "'
 4Z@@(440<<)+;A   
 
 ooOOE#3W==	  
 
 uc4@@#'7uMM  ??:~>>":x888":|<<<99;;%%''DDU\"EJ%G%G%GDHH	  
 
 !!UA..*1dD99TT'4T::
tt$h
;;; #/4>>eX/BCC !!
 !

  !ttE85HIIf35IJJ44DD!!%8!<<$ 
 
 h;;44)44DDDttGT6#xtHHHr'   zaten::unbindc                 j    |M                      d|                      dt          j        dt          j                            d          S                       dt          j        dg|z                      }                      d|||	          }|dk    r|gn|} fd
|D             }|S )Nr>   rC   rt   rD   rE   r   r   r0   rQ   rR   c                     g | ]A}                     d |                     dt          j        g                              BS )SqueezerC   rE   )r   rL   rM   )rA   outr#   r   s     r&   rB   zunbind.<locals>.<listcomp>"  sU        	
YQTT*elC56I6ITJJKK  r'   rK   )r   r7   r#   r_   rg   rS   squeezed_outputss   ` `    r&   unbindr     s     ttDDU\!5:%F%F%FDGG  
 
 	
 TT*elA3>&B&BTCCFdd7D&hdGGG#q==wiigG       r'   zaten::nonzero_numpyc                 N    t          | t          j        | |          d|          S )Nrt   )r_   )r   opset9nonzero)r   r"   r_   s      r&   nonzero_numpyr   )  s'     !V^Au--q8DDDDr'   zaten::wherec           
      R   t          j        |          s'|                     d|t          j        j                  }|St          j        | |          }t          j        | ||                     dt          j
        d                    |          S |                     d|||          S )Nr   r   rC   rt   rE   Where)r   _is_boolr   r   r   r   r   r   _unbind_helperrL   rM   )r   	conditionr7   otherr_   s        r&   wherer   /  s     #I.. SDD1L1QDRR	|N1i00	-y!$$z5<??$CCX
 
 	
 44D%000r'   z&aten::fake_quantize_per_channel_affine   c                 "   ||fdvrt          j        d| d| d|          |dk    r(|                     d|t          j        j                  }n'|                     d|t          j        j                  }|                     d||||	          }||fd
k    r]|                     d|t          j        |           |                     dt          j
        dt          j                                      }|                     d||||	          S )N)r      r   r   r   r   VFor (quant_min, quant_max), ONNX allows only (0, 127), (0, 255) and (-128, 127). Got (, )r   r   r   QuantizeLinearr   r   CliprC   r   rD   rE   DequantizeLinear)r   r]   r   r   r   UINT8INT8r   unusedrL   rM   uint8)r   inputsscale
zero_pointrb   	quant_min	quant_max	quantizeds           r&    fake_quantize_per_channel_affiner   =  s-    	9%FFF'.. .!*. . .
 
 	
 A~~TT&*73N3TTUU

TT&*73N3STTT
%vujNNI9))DDM!DDU\#U[%I%I%IDJJ	
 
	 44"Iuj4NNNr'   z%aten::fake_quantize_per_tensor_affinec                    ||fdvrt          j        d| d| d|          |dk    r(|                     d|t          j        j                  }n'|                     d|t          j        j                  }t          j        	                    |t          j        j
                  t          j        j        k    r'|                     d|t          j        j                  }|                     d|||          }||fd	k    r]|                     d
|t          j        |           |                     dt          j        dt          j                                      }|                     d|||          S )Nr   r   r   r   r   r   r   r   r   r   rC   r   rD   rE   r   )r   r]   r   r   r   r   r   r   r    
from_value	UNDEFINEDFLOATr   r   rL   rM   r   )r   r   r   r   r   r   r   s          r&   fake_quantize_per_tensor_affiner   `  ss    	9%FFF'.. .!*. . .
 
 	

 A~~TT&*73N3TTUU

TT&*73N3STTT
!,,UK4M4WXX$*	+ 	+ VU)D)JKK%vujAAI9))DDM!DDU\#U[%I%I%IDJJ	
 
	 44"IujAAAr'   c                      d fd	}|S )Nc                     t          j        | |          }|t          j        | |          S t          j        |dd          }|                     |||          S )Nr   r8   r/   )r   _maybe_cast_reduce_op_input_handle_reduce_dim_noner   r   )r   r7   r#   r8   onnx_op_names       r&   symbolicz%_reduce_op_symbolic.<locals>.symbolic  s]    :1dCC;":1dLQQQ%0#yIIG44dCG4DDDr'   NN )r   r   s   ` r&   _reduce_op_symbolicr     s.    E E E E E E Or'   z	aten::sum	ReduceSumsum)decoratec                 X    t          |           t          j        fd            }|S )Nc                     t          j        dd          fd            }t          j        dddd          fd            }||fS )Nr   r   c                 D   d }|                                                                 dk    rUt          j        |dd          }t	          j        |                                          }|                     d||          }n@|                                                                 dk    rt          j        d|          S  | |          }|Ot          j        	                    |                                          }||k    r|                     d||          }|S Nzonnx::Constantr   r   r   r   r   
r   r   r   r   r   r    r!   r   _unimplementedr   )r   r7   r   
dtype_onnxresultresult_dtype_onnxnamer   s         r&   reduce_nodimz8_reduce_with_dtype.<locals>.reduce.<locals>.reduce_nodim  s   Jzz||  ""&666'25#wGG(6u==GGII
ttFDzt::""$$(888&5dGUKKKXa&&F%$/$=$H$H% %)++ " %
22TT&&zTBBFMr'   r   c                 H   d }|                                                                 dk    rUt          j        |dd          }t	          j        |                                          }|                     d||          }n@|                                                                 dk    rt          j        d|          S  	| |||          }|Ot          j        	                    |                                          }||k    r|                     d||          }|S r   r   )
r   r7   r#   r8   r   r   r   r   r   r   s
           r&   
reduce_dimz6_reduce_with_dtype.<locals>.reduce.<locals>.reduce_dim  s   Jzz||  ""&666'25#wGG(6u==GGII
ttFDzt::""$$(888&5dGUKKKXasG44F%$/$=$H$H% %)++ " %
22TT&&zTBBFMr'   )r   
parse_args)r   argskwargsr   r   r   r   s        r&   reducez"_reduce_with_dtype.<locals>.reduce  s    		#C	0	0	 	 	 	 	 
1	0	" 
	#Cc6	:	:	 	 	 	 	 
;	:	" Z''r'   )r   r   _overload_by_arg_count)onnx_opr   r   r   s    ` @r&   _reduce_with_dtyper     sG    
 #7++H+%( %( %( %( %( ,+%(N Mr'   zaten::unflattenc                    t          j        |          }|t          j        dd          S |                     dt	          j        |gt          j                            }|                     d||          }|                     d||          }|                     d|          }|                     dt	          j        d	gt          j                            }|                     d
||                     dt	          j        dgt          j                                      }|                     d|||          }|                     d||                     dt	          j        dgt          j                                      }	|                     d
|	|                     dt	          j        dgt          j                                      }
|                     dt	          j        t          j        gt          j                            }|                     d||
|          }|                     d|||d	          }t          j	        | ||          S )Nr#   zfONNX and PyTorch use different strategies to split the input. Input rank must be known at export time.rC   rD   rE   rG   r   Shaper   Reshapert   rH   rw   r   )
r   r   r   r   rL   rM   int64r   	INT64_MAX_reshape_helper)r   r"   r#   unflattened_size	input_dim
input_sizehead_start_idxhead_end_idxhead_part_rankdim_plus_onetail_start_idxtail_end_idxtail_part_rankfinal_shapes                 r&   	unflattenr    s"   077I-7
 
 	
 Zyk)U)U)UVVI
$$ui
%
%C
$$uc9
%
%Cgu%%JTT*elA3ek.R.R.RTSSN443Zqc1U1U1UVV L TT':~|LLN44sADDU\1#U[-Q-Q-QDRR L TT	Zqc!E!E!EFF N
 44EL**>)?u{SSS   L TT':~|LLN$$."2N1   K *1e[AAAr'   zaten::unsafe_chunkc                    |M|                      d||                      dt          j        dt          j                            |d          S t	          j        ||          }|t	          j        dd	          S ||z   dz
  |z  }|g||z  z  }||z  }|r|                    |           |                      dt          j        |t          j                            }|                      d
||||          S )Nr>   rC   rt   rD   rE   r   r   unsafe_chunkzunknown dimension sizerQ   rR   )r   rL   rM   rN   r   r\   r   rZ   )	r   r7   chunksr#   r_   rf   rT   rg   rh   s	            r&   r  r    s    ttDDU\!5:%F%F%FDGG  
 
 	
 /c::D|-n>VWWW-!#.J\TZ/0Fj H  h
 TT*el6&L&L&LTMMF44vc84DDDr'   z
aten::tilec                 :   |                      d|          }|                      d|          }|                      d|          }|                      d||          }|                      dt          j        dg                    }|                      d||          }t          j        | d|d	d
          \  }	\  }
}}|
                     dt          j        d
g                    }|
                     d||          }|
                     d||          }|
                     d||d          }t          j        |
j        |           |                     d|          }t          j        |j        |           |		                                
                                }|                      d||          }t          j        | d|d	d
          \  }\  }}}|                     dt          j        d
g                    }|                     d|                     d|          |          }|                     d||          }|                     d||d          }|                     d||          }t          j        |j        |           |                     d|          }t          j        |j        |           |	                                
                                }|                      d|t          j        j                  }|                      d||          S )Nr   Sizer   rC   r   rE   GreaterIf   rt   )rz   rS   r   Expandrw   r   r|   LessAbsr   r   r   )r   rL   rM   r
   r   
LongTensorr	   r   r   r   r   r   r   INT64)r   r7   dims
self_shape	self_rank	dims_rankdiff
const_zerodims_shorter_than_self_shapeif_op_greaterif_context_greaterelse_context_greaterr   	const_onediff_1d_greaterexapnd_ones_greaterdims_identity_dim
dims_finaldims_longer_than_self_shape
if_op_lessif_context_lesselse_context_lessdiff_1d_lessexapnd_ones_lessself_final_shapeself_identity_self
self_finals                                r&   tiler+    s   gt$$JVZ((IVT""I44y),,Dj%,s*;*;<<J $%44	4#D#D 
 	$	4-1	 	 		2	1	 #%%j%:JA3:O:O%PPI(++ItYGGO,//)_UU!!(,?a!PPE	17???'**:t<<L	39<HHH##%%,,..J #$$$vtZ"@"@
 	$	4,q!	 	 		,+	  "":u7G7L7L"MMI"%%5$'' L
 '))(I|LL&))"Jq *   y$0@AAE	4e<<<%((T::M	06FFF""))++Jfjw/J/PQQJ44
J///r'   zaten::repeat_interleavec           
      "   t          j        |          }t          j        |          }t          j        |          }|t          j        d|          |t          j        d|          |t          j        d|          |}t          j        |          r_t          j        | ||                     dt          j	        dg                              }t          j	        dt          j
                  }nt          j        |          }|dk     r|t          |          z  }|                                }	t          |          D ]\  }
}|d	\  |	|
<   ||
<   |dk    s|d
k    r#|d         d
k    rt          j        | |||          S |d
k    o	|d         d u }|	|         dk    s|rt          j        | ||          }t#          j        | |d          }|rt          j        | ||                     dt          j        dg                              }|                     d||                     dt          j        d
g                              }t)          | ||                     d||          |          }nt+          j        | |||          S |                     d|                     d|          t          j	        d
gt          j                            }t1          | ||d          }t1          | |||          }d\  |	|<   ||<   |                     dt          j	        d
                    }|                     d|t2          j        j                  }|}|                     d          }t9          j        | d|||d
          \  }\  }}|j        }t?          j         |          }t?          j         |          }t?          j         |          }|                    d||          }|                    d||          }t#          j        |||d
z             }|                    dt          j        |d |d
z                                ||                    dt          j        ||d
z   d                              g} |j        dg|R ddi}t+          j!        |||d           }t          j        |||                     dt          j        |	                              }|                    d||          }|                    d|t2          j        j                  }t?          j"        ||           t?          j"        ||           |#                                $                                } |                     d| |          } | S )NzGUnsupported: ONNX export of repeat_interleave for unknown repeats rank.zGUnsupported: ONNX export of repeat_interleave for unknown repeats size.zEUnsupported: ONNX export of repeat_interleave for unknown input size.rC   r}   rE   r   rD   )r   r}   rt   Equalr  ConstantOfShaper   )r}   rt   r   r   rx   ry   rz   rJ   rw   r   r{   ConcatFromSequencer   )%r   r   _get_tensor_sizesr   r]   _is_noner   r   rL   rM   r   _maybe_get_scalarr5   copy	enumerate-_repeat_interleave_single_value_repeat_helperr   r   r   r  r   r   repeat_interleaverN   ri   r   r   r   r
   r   r   r	   r   expandr   r   r   )!r   r7   repeatsr#   output_sizerepeats_dimrepeats_sizesinput_sizes	final_dimoutput_sizesidxr   cond_dynamic_repeatsreps
repeat_dimrepeat_cond	reps_liker_splitsi_splitsr   r   r   r   r   r   r   r   r   r_spliti_splitr_concatr   r   s!                                    r&   r7  r7  F  s    "27;;K#5g>>M!3D99K'U
 
 	
 'U
 
 	
 'S
 
 	

 I $$ 5.tQTT*elB4.@.@TAA
 
 l1EK000/44 Qwws;##%%L$[11 8 8Z27/L{3/ aK1,,q1AQ1F1FLtWc
 
 	
 '!+Ha0@D0HCA!5+AtS99 D!,,
   	T(57ADDU5Eqc5J5JDKK J $$QTT*e>NPQs>S>ST%T%T K A{ADD7D,I,I7SSG '4)DDD	WgaS
333   I
 QA..HQi--H*/'L{3' TT*el1ooT>>NTT&.w7R7WTXXNH 44((L  );	68^\A     D/<1 #J0<<$Z00D,Z88LoolH6FGGGoolH6FGGGgsQw??G
E,<[3QR7=S,T,TUU
E,<[q=S,T,TUUH
 |x=(===1==HmL'8TBBG-gqttJ8H8V8VtWW G  ??#3\7KKL W%@%E   H 
z8444	z<888yy{{!!##Htt((3t??HOr'   zaten::diagonalc                 	    t          j        |          }||dk    r|n||z   }|dk    r|n||z   }t          j         |                     dt          j        |g                              }t          j         |                     dt          j        |g                              }                     d||d          }t          j         |d d d           }	                     d|	|          }	|dt          t          |                    }
|

                    |           |

                    |                                d	||
||gz   
          }nt          j        dd          S                      d||	          t          j         dgd                               dt          j        |g                    }|dk    rl                     d                     d|                     d||                                         dt          j        dg                              }d}ni                     d                     d                     d||          |                               dt          j        dg                              }                     d|d          }t          j         |dd d           }                     d|                     dt          j        dg                              }                     d|                     dt          j        t          |          dz
  g                              } fdt          t          |                    d d         D             }|                    |             j        dg|R ddi}t          j         |dd d           }                     d                     d|                     dt          j        dt
          j                                                }t%          j         d|d          \  }\  }}}|                    d||          }t          j        |||dz
  g          }|                    d ||dz
  !          }t          j        ||d"d d           }t+          j        |j        |           t+          j        |j        |           |S )#Nr   rC   rE   r#   rw   r   EyeLike)k_i	Transpose)perm_idiagonalzunknown input rankr1   r}   )axes_ir0   MaxMinr   rG      CumSumrt   c                     g | ]A}t          j                            d t          j        |g                              BS )rC   rE   rL  )r   rf   r   rL   r  )rA   rb   r   r   s     r&   rB   zdiagonal.<locals>.<listcomp>  sW        	Av144
E<LdV<T<T4#U#UVVV  r'   r   Notr-  rD   r
  r  r/  GatherND)batch_dims_i   )r   r   r   rf   r   rL   r  zeroslistrY   remover   r6   onesabsrZ   rM   r   r
   r   r@   r	   r   r   )r   r7   offsetdim1dim2rank	dim1_size	dim2_size
mask_shapemaskaxes	offset_op	diag_sizeselect_window_ones_fillselect_windowgather_shapegather_indicesoverrun_condif_op
if_contextelse_contextr   gather_indices_if_blockfinal_non_overrunfinal_overrunr   s   `                        @r&   rQ  rQ    s    +D11DqyyttdTkqyyttdTk	4QTT*e.>v.F.FTGG  I 	4QTT*e.>v.F.FTGG  I h	9Q??J<:tT488D44	4V4,,D E$KK  DDttKddD\.AtBB-j:NOOO TT%t$$F.q&"RSTTTF
 Z)96()C)CDDI{{DDDD	144y)#D#DEEDDU%5qc%:%:D;;
 
	
 DDDDUIy999EEDDU%5qc%:%:D;;
 
	
 Xy33I %k!Y4FFDD	Z!11#!6!677 M
 DD	Z!13v;;?2C!D!DEE M    t%%crc*  L 	"""14:<:::::L\!\1dDAAN 44	DDU\!5;%G%G%GDHH	
 	
 L ,5+G	4, , ,(E%Jq )mmE>=QQ-?+dQhZ  #F3$( &   L|QdKKM	z/1BCCC	|1=AAALr'   zquantized::linearc                 *   t          j        | |          \  }}}}t          j        | |          \  }	}
}}t          j        | |||
|          }t          j        | |          \  }}}}t          j        | ||	|          }t          j        | |||          S rk   )r   dequantize_helperrequantize_bias_helperr   linearquantize_helperr   q_inputq_weightbiasop_scaleop_zero_pointr"   input_scaler   weightweight_scalerb   q_biasr   s                 r&   quantized_linearr  N  s      /@GLLE;1$3$Ea$R$R!FL!T3	4lD F $5a@@MD!Q]1eVT22F*1fhNNNr'   zquantized::linear_reluc                 T   t          j        | |          \  }}}}t          j        | |          \  }	}
}}t          j        | |||
|          }t          j        | |          \  }}}}t          j        | ||	|          }t          j        | |          }t          j        | |||          S rk   )r   ry  rz  r   r{  relur|  r}  s                 r&   quantized_linear_relur  ^  s      /@GLLE;1$3$Ea$R$R!FL!T3	4lD F $5a@@MD!Q]1eVT22F[F##F*1fhNNNr'   zquantized::conv1d_reluc
           
      \   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | ||||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |          }t          j        | |||	          S rk   )r   ry  rz  r   conv1dr  r|  r   r~  r  r  stridepaddingdilationgroupsr  r  r"   r  r   r  r  rb   r  r   s                     r&   quantized_conv1d_relur  o        /@GLLE;1$3$Ea$R$R!FL!T3	4lD F $5a@@MD!Q]1eVT67HfUUF[F##F*1fhNNNr'   zquantized::conv2d_reluc
           
      \   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | ||||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |          }t          j        | |||	          S rk   )r   ry  rz  r   conv2dr  r|  r  s                     r&   quantized_conv2d_relur    r  r'   zquantized::conv3d_reluc
           
      \   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | ||||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |          }t          j        | |||	          S rk   )r   ry  rz  r   conv3dr  r|  r  s                     r&   quantized_conv3d_relur    r  r'   zquantized::conv1dc
           
      2   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | ||||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |||	          S rk   )r   ry  rz  r   r  r|  r  s                     r&   quantized_conv1dr          /@GLLE;1$3$Ea$R$R!FL!T3	4lD F $5a@@MD!Q]1eVT67HfUUF*1fhNNNr'   zquantized::conv2dc
           
      2   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | ||||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |||	          S rk   )r   ry  rz  r   r  r|  r  s                     r&   quantized_conv2dr    r  r'   zquantized::conv3dc
           
      2   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | ||||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |||	          S rk   )r   ry  rz  r   r  r|  r  s                     r&   quantized_conv3dr    r  r'   zquantized::conv_transpose1dc                 4   t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | ||||          }t          j        | |          \  }}}}t          j        | ||||||||	  	        }t          j        | ||	|
          S rk   r   ry  rz  r   conv_transpose2dr|  r   r~  r  r  r  r  output_paddingr  r  r  r  r"   r  r   r  r  rb   r  r   s                      r&   quantized_conv_transpose1dr          /@GLLE;1$3$Ea$R$R!FL!T3	4lD F $5a@@MD!Q$	5&$ F *1fhNNNr'   zquantized::conv_transpose2dc                 4   t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | ||||          }t          j        | |          \  }}}}t          j        | ||||||||	  	        }t          j        | ||	|
          S rk   r  r  s                      r&   quantized_conv_transpose2dr  $  r  r'   zquantized::conv_transpose3dc                 4   t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | ||||          }t          j        | |          \  }}}}t          j        | ||||||||	  	        }t          j        | ||	|
          S rk   )r   ry  rz  r   conv_transpose3dr|  r  s                      r&   quantized_conv_transpose3dr  @  r  r'   rk   )NF)r   N)NNNr   r   )8	functoolsrL   torch._C._onnx_C_onnxr   
torch.onnxr   r   r   r   r   r   r   r   r	   torch.onnx._internalr
   r   partialonnx_symbolic_onnx_symbolicr   GraphContextr$   r+   r<   ri   rn   rp   rr   r   r   r   r   r   r   r   _apply_paramsr   r  r  r+  r7  rQ  r  r  r  r  r  r  r  r  r  r  r  r   r'   r&   <module>r     s	                                           9 8 8 8 8 8 8 8 #"<#=RHHH   Cf-- y%    .- !  #$$Cf-- 9)    .- %$ &''Cc**   i,       +* ('  Cc3//4E 4EY# 4E 4E 4E 0/ 4En ())6 6	. 6 6 6 *)6 $%%HL> >> > > &%> /00@DA AA A A 10A $%%Cc3//HLEI EIEI EI EI 0/ &%EIP Cc** i$    +*  ( %&&E EY+ E E E '&E Cc3//	1 	1Y# 	1 	1 	1 0/ 	1 899Cc3S99 O OO O O :9 :9OB 788Cc344 !B !B!B !B !B 54 98!BH
 
 
 +o+K??@  + +	 +b !""'B' 'B 'B 'B #"'BT $%%Cc3//E EI* E E E 0/ &%E4 30I" 30 30 30 30l )**DHI II I I +*IX  !!Cc3//s	& s s s 0/ "!sr #$$OO O O %$O ())OO O O *)O  ())OO O O *)O2 ())OO O O *)O2 ())OO O O *)O2 #$$OO O O %$O0 #$$OO O O %$O0 #$$OO O O %$O0 -..OO O O /.O6 -..OO O O /.O6 -..OO O O /.O O Or'   