
    ¯wg                     	   d Z ddlZddlmZmZmZmZ ddlZddlmZ ddl	m
Z
mZmZ ddlmZmZ dgZ ej$                  ej&                  d	      Z ed
       ed      dej*                  fd              Z ed       ej.                  dddddd      dej0                  dej0                  dej0                  dee   dee   dee   fd              Z ed ej6                  dd      g       ed ej6                  ddd       g      dOd"ed#ed$efd%              Z ed&       ej>                  d!ddd       ej.                  ddddd'      dej*                  dej0                  d(ee   d)ej0                  d*ej0                  d+e d,eej0                  ej0                  ej0                  f   fd-                     Z! ed.       ej.                  dd/      dej*                  fd0              Z" ed1      dPdej*                  fd2       Z# ed3       ej>                  d!d!      dej*                  fd4              Z$ ed5      dPdej*                  fd6       Z% ed7       ej>                  d!d!      dej*                  fd8              Z& ed9       ej>                  d!       ej.                  ddd/      dej*                  fd:                     Z' ed;       ej>                  d!       ej.                  ddd/      dej*                  fd<                     Z( ed=       ej>                  d!       ej.                  ddd/      dej*                  fd>                     Z) ed?      dej*                  fd@       Z* edA       ej.                  ddd/      dej*                  fdB              Z+ edC       ej.                  ddddDd      dej*                  dEej                  j0                  dFej                  j0                  dGee   dHedIej                  j0                  fdJ              Z, edK       ej.                  dddd/d/d/dd/d/	      dej*                  fdL              Z- edM       ej.                  dd'ddDd      dej*                  dEej                  j0                  dFe dGeee      dHedIej                  j0                  fdN              Z.y)Qa  This file exports ONNX ops for opset 18.

Note [ONNX Operators that are added/updated in opset 18]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
https://github.com/onnx/onnx/blob/main/docs/Changelog.md#version-18-of-the-default-onnx-operator-set
New operators:
    BitwiseAnd
    CenterCropPad
    Col2Im
    Mish
    OptionalGetElement
    OptionalHasElement
    Pad
    Resize
    ScatterElements
    ScatterND
    Split
    N)ListOptionalSequenceTuple)_C)_type_utilssymbolic_helpersymbolic_opset9)	jit_utilsregistrationcol2im   )opsetzaten::__and_zaten::bitwise_andgc                    ||g}|D cg c]  }t        j                  |      s| }}t        |      dk(  r|}t        j                  | }t        j                  | ||      }t        j                  | ||      }|t
        j                  j                  k(  r| j                  d||      S | j                  d||      S c c}w )Nr   And
BitwiseAnd)	r	   _get_tensor_ranklen_type_promote_from_values_maybe_cast_to_typer   JitScalarTypeBOOLop)r   selfotherargsarg	prom_argspromotion_jit_types          `/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/torch/onnx/symbolic_opset18.py__and_r"   )   s     %=D $N(H(H(MNIN
9~	(BBIN..q$8JKD//5:LME[66;;;ttE4''44dE** Os
   B=B=zaten::col2imvisinputoutput_sizekernel_sizedilationpaddingstridec           	          g }|D ]#  }t        d      D ]  }	|j                  |        % t        j                  |      d   }
|sddg|
z  }|sdg|
z  }|sdg|
z  }| j	                  d||||||      S )N   r      Col2Im)dilations_ipads_i	strides_i)rangeappendr	   _get_tensor_sizesr   )r   r%   r&   r'   r(   r)   r*   adjusted_paddingpad_num_dimensional_axiss              r!   r   r   :   s      )q 	)A##C(	)) +<<[I!Lq6$883--++44       z
aten::mean
ReduceMeanmean)decoratez
aten::prod
ReduceProdprodF)allow_multi_dim_supportTonnx_opnamer?   c                 0    t        j                  | ||      S N)r	   _reduce_with_dtype_helper)r@   rA   r?   s      r!   _reduce_with_dtyperE   `   s     44. r9   zaten::native_layer_normfnormalized_shapeweightbiasepsreturnc                 6    t        j                  | |||||      S rC   )opset9native_layer_norm)r   r%   rG   rH   rI   rJ   s         r!   _native_layer_normrO   q   s      ##Au.>cRRr9   z	aten::gluic                     t        j                  ||      }|
|dz  dk(  sJ | j                  d||dd      \  }}| j                  d|| j                  d|            S )Nr,   r   Split)axis_inum_outputs_ioutputsMulSigmoid)r	   _get_tensor_dim_sizer   )r   r%   dimdim_sizefirstseconds         r!   _glur]      sh     33E3?H!|q   DD%1aDPME644uadd9f566r9   z	aten::maxc                 2    t        j                  | |||      S rC   )r	   _max_helperr   r   dim_or_ykeepdims       r!   maxrc      s    
 &&q$'BBr9   zaten::maximumc                     t        | ||      S N)ra   )rc   r   r%   r   s      r!   maximumrg           q%%((r9   z	aten::minc                 2    t        j                  | |||      S rC   )r	   _min_helperr`   s       r!   minrk      s     &&q$'BBr9   zaten::minimumc                     t        | ||      S re   )rk   rf   s      r!   minimumrm      rh   r9   z
aten::amaxc                     | j                  dt        j                  |t        j                              }| j                  d|||      S )NConstantdtypevalue_t	ReduceMax
keepdims_ir   torchtensorlongr   r   rY   rb   axess        r!   amaxr}      <     44
ELLEJJ$G4HD44T4G4<<r9   z
aten::aminc                     | j                  dt        j                  |t        j                              }| j                  d|||      S )Nro   rp   rr   	ReduceMinru   rw   r{   s        r!   aminr      r~   r9   zaten::aminmaxc                 l   t        j                  |      sxt        j                  |dd      }| j                  dt	        j
                  |gt        j                              }| j                  d|||      | j                  d|||      fS | j                  d||      | j                  d||      fS )	NrP   rY   ro   rp   rr   r   ru   rt   )r	   _is_none
_get_constr   rx   ry   rz   r{   s        r!   aminmaxr      s     ##C(((c59ttJcU%**(MtNttKtt@!$$t CG C
 
 	
 ttK't:ADD' =A =
 
 	
r9   zaten::var_meanc                     t        |      dk(  rt        j                  | |d |d   d       S t        j                  | |g| S )Nr-   r   )r   r	   _var_mean_helper)r   r%   r   s      r!   	_var_meanr      sB    
4yA~//5$QNN//5@4@@r9   zaten::logsumexpc                     || j                  d|d      S | j                  dt        j                  |t        j                              }| j                  d|||      S )NReduceLogSumExpr   ru   ro   rp   rr   rw   )r   r%   rY   rb   r|   s        r!   
_logsumexpr      sX     {tt%ut;;ttJS

(KtLtt%udwtGGr9   zaten::linalg_matrix_normbr   ordrY   rb   rq   c                 6    t        j                  | |||||      S rC   )rM   linalg_matrix_normr   r   r   rY   rb   rq   s         r!   _linalg_matrix_normr      s     $$Qc3GGr9   zaten::embedding_bagc
                 >    t        j                  | |||||||||	
      S rC   )r	   _embedding_bag_helper)
r   embedding_matrixindicesoffsetsscale_grad_by_freqmodesparseper_sample_weightsinclude_last_offsetpadding_idxs
             r!   embedding_bagr      s5     00	 r9   zaten::linalg_vector_normc                 6    t        j                  | |||||      S rC   )r	   _linalg_vector_norm_helperr   s         r!   linalg_vector_normr      s      55asCRWXXr9   )T)NN)/__doc__	functoolstypingr   r   r   r   rx   r   
torch.onnxr   r	   r
   rM   torch.onnx._internalr   r   __all__partialonnx_symbolic_onnx_symbolicGraphContextr"   
parse_argsValueintr   _apply_paramsstrboolrE   quantized_argsfloatrO   r]   rc   rg   rk   rm   r}   r   r   r   r   r   r   r    r9   r!   <module>r      s9  (  2 2   N N 8  #""<#=#=RH #$+i$$ + %  + Cc4t<!88! ! 	!
 sm! c]! SM! =  !H 9O99,OP %%%&%	
 3   )*eUE:CsC5SS88S smS HH	S
 ((S 
S 288RXXrxx'(S 6 ; +S C%7I"" 7 & 7 C9!! C	 C  d+)y%% ) , !) C9!! C C  d+)y%% ) , !) %Cs+=I"" = , & =
 %Cs+=I"" = , & =
  %Cc*

y%% 

 + & !

  !A'' A "A !"Cs+H)(( H , #H *+CdC5HH
((..H 
H 
c	H
 H 88>>H 6 ,H %&Cc3S#sCH I '4 *+CdC5YY
((..Y 
Y 
(3-	 	Y
 Y 88>>Y 6 ,Yr9   