
    Yh                     ^	   d Z ddlZddlmZ ddl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j        dej        dej        dee         dee         dee         fd                        Z ed e
j        dd          g           ed e
j        ddd !          g          dPd#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j        d)ee         d*ej        d+ej        d,ed-e ej        ej        ej        f         fd.                                    Z! ed/           e
j        dd0          dej        fd1                        Z" ed2          dQdej        fd3            Z# ed4           e
j        d"d"          dej        fd5                        Z$ ed6          dQdej        fd7            Z% ed8           e
j        d"d"          dej        fd9                        Z& ed:           e
j        d"           e
j        ddd0          dej        fd;                                    Z' ed<           e
j        d"           e
j        ddd0          dej        fd=                                    Z( ed>           e
j        d"           e
j        ddd0          dej        fd?                                    Z) ed@          dej        fdA            Z* edB           e
j        ddd0          dej        fdC                        Z+ edD           e
j        ddddEd          dej        dFej        j        dGej        j        dHe,e         dIedJej        j        fdK                        Z- edL           e
j        dddd0d0d0dd0d0	  	        dej        fdM                        Z. edN           e
j        dd(ddEd          dej        dFej        j        dGedHeee                  dIedJej        j        fdO                        Z/dS )Ra  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)Sequence)Optional)_C)_type_utilssymbolic_helpersymbolic_opset9)	jit_utilsregistrationcol2im   )opsetzaten::__and_zaten::bitwise_andgc                 F   ||g}d |D             }t          |          dk    r|}t          j        | }t          j        | ||          }t          j        | ||          }|t          j        j        k    r|                     d||          S |                     d||          S )Nc                 :    g | ]}t          j        |          |S  )r   _get_tensor_rank).0args     m/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/torch/onnx/symbolic_opset18.py
<listcomp>z__and_.<locals>.<listcomp>0   s(    NNN(H(M(MNNNN    r   And
BitwiseAnd)lenr   _type_promote_from_values_maybe_cast_to_typer   JitScalarTypeBOOLop)r   selfotherargs	prom_argspromotion_jit_types         r   __and_r%   *   s     %=DNNNNNI
9~~	(BIN.q$8JKKD/5:LMME[6;;;ttE4'''44dE***r   zaten::col2imvisinputoutput_sizekernel_sizedilationpaddingstridec           	        	 g }|D ]0	|                     	fdt          d          D                        1t          j        |          d         }|sddg|z  }|sdg|z  }|sdg|z  }|                     d||||||          S )Nc              3      K   | ]}V  d S Nr   )r   _pads     r   	<genexpr>zcol2im.<locals>.<genexpr>I   s#      66666666r      r      Col2Im)dilations_ipads_i	strides_i)extendranger   _get_tensor_sizesr   )
r   r(   r)   r*   r+   r,   r-   adjusted_paddingnum_dimensional_axisr2   s
            @r   r   r   ;   s     #% 7 76666U1XX6666666*<[II!L 9q6$88 .3-- ,++44    r   z
aten::mean
ReduceMeanmean)decoratez
aten::prod
ReduceProdprodF)allow_multi_dim_supportTonnx_opnamerD   c                 .    t          j        | ||          S r0   )r   _reduce_with_dtype_helper)rE   rF   rD   s      r   _reduce_with_dtyperI   `   s!     4.  r   zaten::native_layer_normfnormalized_shapeweightbiasepsreturnc                 4    t          j        | |||||          S r0   )opset9native_layer_norm)r   r(   rK   rL   rM   rN   s         r   _native_layer_normrS   q   s      #Au.>cRRRr   z	aten::gluic                     t          j        ||          }||dz  dk    sJ |                     d||dd          \  }}|                     d||                     d|                    S )Nr4   r   Split)axis_inum_outputs_ioutputsMulSigmoid)r   _get_tensor_dim_sizer   )r   r(   dimdim_sizefirstseconds         r   _glura      st     3E3??H!|q    DD%1aDPPME644uadd9f55666r   z	aten::maxc                 0    t          j        | |||          S r0   )r   _max_helperr   r    dim_or_ykeepdims       r   maxrg      s    
 &q$'BBBr   zaten::maximumc                 &    t          | ||          S N)re   )rg   r   r(   r!   s      r   maximumrk           q%%((((r   z	aten::minc                 0    t          j        | |||          S r0   )r   _min_helperrd   s       r   minro      s     &q$'BBBr   zaten::minimumc                 &    t          | ||          S ri   )ro   rj   s      r   minimumrq      rl   r   z
aten::amaxc                     |                      dt          j        |t          j                            }|                      d|||          S )NConstantdtypevalue_t	ReduceMax
keepdims_ir   torchtensorlongr   r    r]   rf   axess        r   amaxr      D     44
ELEJ$G$G$G4HHD44T4G4<<<r   z
aten::aminc                     |                      dt          j        |t          j                            }|                      d|||          S )Nrs   rt   rv   	ReduceMinry   r{   r   s        r   aminr      r   r   zaten::aminmaxc                    t          j        |          s~t          j        |dd          }|                     dt	          j        |gt          j                            }|                     d|||          |                     d|||          fS |                     d||          |                     d||          fS )	NrT   r]   rs   rt   rv   r   ry   rx   )r   _is_none
_get_constr   r|   r}   r~   r   s        r   aminmaxr      s     #C(( 	
(c599ttJcU%*(M(M(MtNNttKtt@@!$$t CG C
 C
 
 	
 ttK't::ADD' =A =
 =
 
 	
r   zaten::var_meanc                     t          |          dk    rt          j        | |d |d         d           S t          j        | |g|R  S )Nr5   r   )r   r   _var_mean_helper)r   r(   r"   s      r   	_var_meanr      sI    
4yyA~~/5$QNNN/5@4@@@@r   zaten::logsumexpc                     ||                      d|d          S |                      dt          j        |t          j                            }|                      d|||          S )NReduceLogSumExpr   ry   rs   rt   rv   r{   )r   r(   r]   rf   r   s        r   
_logsumexpr      sc     {tt%ut;;;ttJS
(K(K(KtLLtt%udwtGGGr   zaten::linalg_matrix_normbr    ordr]   rf   ru   c                 4    t          j        | |||||          S r0   )rQ   linalg_matrix_normr   r    r   r]   rf   ru   s         r   _linalg_matrix_normr      s     $Qc3GGGr   zaten::embedding_bagc
                 <    t          j        | |||||||||	
  
        S r0   )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      s7     0	  r   zaten::linalg_vector_normc                 4    t          j        | |||||          S r0   )r   _linalg_vector_norm_helperr   s         r   linalg_vector_normr      s      5asCRWXXXr   )T)NN)0__doc__	functoolscollections.abcr   typingr   r|   r   
torch.onnxr   r   r   rQ   torch.onnx._internalr	   r
   __all__partialonnx_symbolic_onnx_symbolicGraphContextr%   
parse_argsValueintr   _apply_paramsstrboolrI   quantized_argsfloattuplerS   ra   rg   rk   ro   rq   r   r   r   r   r   listr   r   r   r   r   r   <module>r      s
   (     $ $ $ $ $ $              N N N N N N N N N N 8 8 8 8 8 8 8 8  #"<#=RHHH #$$+i$ + + + %$  + Cc4t<< 8    	 
 sm  c]  SM      =<   F 9O9,OOP   %%&%	
 	
 	
    3       )**eUE::CsC55SS8S smS H	S
 (S 
S 28RXrx'(S S S 65 ;: +*S C%%7I" 7 7 7 &% 7 C C9! C C C	 C   d++)y% ) ) ) ,+ ! ) C C9! C C C C   d++)y% ) ) ) ,+ ! ) %%Cs++=I" = = = ,+ &% =
 %%Cs++=I" = = = ,+ &% =
   %%Cc**

y% 

 

 

 +* &% ! 

  !!A' A A A "!A !""Cs++H)( H H H ,+ #"H *++CdC55HH
(.H 
H 
c	H
 H 8>H H H 65 ,+H %&&Cc3S#sCHH   IH '&4 *++CdC55YY
(.Y 
Y 
(3-	 	Y
 Y 8>Y Y Y 65 ,+Y Y Yr   