
    #h                     	   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          X/var/www/html/sandstorm/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 ]%  	|j                  	fdt        d      D               ' t        j                  |      d   }|sddg|z  }|sdg|z  }|sdg|z  }| j	                  d||||||      S )Nc              3   "   K   | ]  }  y wN ).0_pads     r!   	<genexpr>zcol2im.<locals>.<genexpr>H   s     66s      r      Col2Im)dilations_ipads_i	strides_i)extendranger	   _get_tensor_sizesr   )
r   r%   r&   r'   r(   r)   r*   adjusted_paddingnum_dimensional_axisr1   s
            @r!   r   r   :   s     #% 76U1X667 +<<[I!Lq6$883--++44       z
aten::mean
ReduceMeanmean)decoratez
aten::prod
ReduceProdprodF)allow_multi_dim_supportTonnx_opnamerD   c                 0    t        j                  | ||      S r-   )r	   _reduce_with_dtype_helper)rE   rF   rD   s      r!   _reduce_with_dtyperI   _   s     44. r>   zaten::native_layer_normfnormalized_shapeweightbiasepsreturnc                 6    t        j                  | |||||      S r-   )opset9native_layer_norm)r   r%   rK   rL   rM   rN   s         r!   _native_layer_normrS   p   s      ##Au.>cRRr>   z	aten::gluic                     t        j                  ||      }|
|dz  dk(  sJ | j                  d||dd      \  }}| j                  d|| j                  d|            S )Nr3   r   Split)axis_inum_outputs_ioutputsMulSigmoid)r	   _get_tensor_dim_sizer   )r   r%   dimdim_sizefirstseconds         r!   _glura   ~   sh     33E3?H!|q   DD%1aDPME644uadd9f566r>   z	aten::maxc                 2    t        j                  | |||      S r-   )r	   _max_helperr   r   dim_or_ykeepdims       r!   maxrg      s    
 &&q$'BBr>   zaten::maximumc                     t        | ||      S N)re   )rg   r   r%   r   s      r!   maximumrk           q%%((r>   z	aten::minc                 2    t        j                  | |||      S r-   )r	   _min_helperrd   s       r!   minro      s     &&q$'BBr>   zaten::minimumc                     t        | ||      S ri   )ro   rj   s      r!   minimumrq      rl   r>   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   r]   rf   axess        r!   amaxr      <     44
ELLEJJ$G4HD44T4G4<<r>   z
aten::aminc                     | j                  dt        j                  |t        j                              }| j                  d|||      S )Nrs   rt   rv   	ReduceMinry   r{   r   s        r!   aminr      r   r>   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 )	NrT   r]   rs   rt   rv   r   ry   rx   )r	   _is_none
_get_constr   r|   r}   r~   r   s        r!   aminmaxr      s     ##C(((c59ttJcU%**(MtNttKtt@!$$t CG C
 
 	
 ttK't:ADD' =A =
 
 	
r>   zaten::var_meanc                     t        |      dk(  rt        j                  | |d |d   d       S t        j                  | |g| S )Nr4   r   )r   r	   _var_mean_helper)r   r%   r   s      r!   	_var_meanr      sB    
4yA~//5$QNN//5@4@@r>   zaten::logsumexpc                     || j                  d|d      S | j                  dt        j                  |t        j                              }| j                  d|||      S )NReduceLogSumExpr   ry   rs   rt   rv   r{   )r   r%   r]   rf   r   s        r!   
_logsumexpr      sX     {tt%ut;;ttJS

(KtLtt%udwtGGr>   zaten::linalg_matrix_normbr   ordr]   rf   ru   c                 6    t        j                  | |||||      S r-   )rQ   linalg_matrix_normr   r   r   r]   rf   ru   s         r!   _linalg_matrix_normr      s     $$Qc3GGr>   zaten::embedding_bagc
                 >    t        j                  | |||||||||	
      S r-   )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	 r>   zaten::linalg_vector_normc                 6    t        j                  | |||||      S r-   )r	   _linalg_vector_norm_helperr   s         r!   linalg_vector_normr      s      55asCRWXXr>   )T)NN)/__doc__	functoolstypingr   r   r   r   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floatrS   ra   rg   rk   ro   rq   r   r   r   r   r   r   r   r   r.   r>   r!   <module>r      s9  (  2 2   N N 8  #""<#=#=RH #$+i$$ + %  + Cc4t< 88    	 
 sm  c]  SM  =   F 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r>   