
    Phd}              
       &   U d dl Z d dlZd dlZd dlmZ ddlmZ d dl d dlm	Z	 g Z
ee   ed<   i Zeeef   ed<   d	 Zd
 Zd ZdeddfdZdededededdf
dZd Zd Zd Z e j2                  ee      Zdee   fdZd Zd Zd Z d Z! eejD                  jF                  jH                  jJ                  ejD                  jF                  jL                  jJ                  ejD                  jF                  jN                  jJ                  ejD                  jF                  jP                  jJ                  ejD                  jF                  jR                  jJ                  ejD                  jF                  jT                  jJ                  gd      d        Z+ eejD                  jX                  jZ                  jJ                  d      d        Z. eejD                  jF                  j^                  jJ                  gd      d        Z0 eejD                  jF                  jb                  jJ                  d      d         Z2  eejD                  jF                  jb                  jf                  d!      e2        eejD                  jF                  jh                  jJ                  d"      d#        Z5 eejD                  jF                  jl                  jJ                  d$      d%        Z7 eejD                  jF                  jp                  jJ                  d&      d'        Z9  eejD                  jF                  jt                  jJ                  ejD                  jF                  jv                  jJ                  ejD                  jF                  jx                  jJ                  ejD                  jF                  jz                  jJ                  gd&      e         eejD                  jF                  j|                  jJ                  d(      e        eejD                  jF                  j~                  jJ                  d)      d*        Z@ eejD                  jF                  j                  jJ                  d+      d,        ZB eejD                  jF                  j                  j                  d-      d.        ZE eejD                  jF                  j                  j                  d/      d0        ZH eejD                  jF                  j                  jJ                  d1      d2        ZJ eejD                  jF                  j                  j                  d3      d4        ZM eejD                  jF                  j                  jJ                  d5      d6        ZO eejD                  jF                  j                  jJ                  d7      d8        ZQ eejD                  jF                  j                  jJ                  d9      d:        ZS eejD                  jF                  j                  jJ                  d;      d<        ZU eejD                  jF                  j                  jJ                  d=      d>        ZW eejD                  jF                  j                  j                  d?      d@        ZZ eejD                  jF                  j                  jJ                  dA      dB        Z\ eejD                  jF                  j                  jJ                  dA      dC        Z^ eejD                  jF                  j                  jJ                  dD      dE        Z` eejD                  jF                  j                  j                  dF      dG        Zc eejD                  jF                  j                  j                  dH      dI        Ze eejD                  jF                  j                  jJ                  dJ      dK        Zg eejD                  jF                  j                  jJ                  dL      dM        Zi eejD                  jF                  j                  jJ                  dN      dO        Zk eejD                  jF                  j                  j                  dP      dQ        Zm eejD                  jF                  j                  j                  dR      dS        Zo eejD                  jF                  j                  jJ                  dT      dU        Zq eejD                  jF                  j                  jN                  dV      dW        Zs eejD                  jF                  j                  jJ                  d7      dX        Zu eejD                  jF                  j                  jJ                  dY      dZ        Zwy)[    N)#jagged_scaled_dot_product_attention   )NestedTensor)*)normalize_function__all__JAGGED_OPS_TABLEc                 2    |dk\  r|| k  sJ |dk  rdS |dz
  S )Nr      r    )ndimdims     eC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/nested/_internal/ops.py_outer_to_inner_dimr      s*    !8d
""a1$S1W$    c                 ^    ddl m}  || |      }|dk  rt        | d      t        | |      S )Nr   canonicalize_dimsr   z4(): not supported for NestedTensor on dim=0 or dim=1)torch._prims_commonr   RuntimeErrorr   )r   r   op_namer   wrappeds        r   _wrap_jagged_dimr      s?    5c*G{iKL
 	
 tW--r   c                      ddl m} |D cg c]  } | |       }}d|v }d|v }||z  r|rdnd\  }}	t        | d| d|	 d      t         fd	|D              |fS c c}w )
Nr   r   r   )batchragged)r   r   z(): applying over the z dimension, but not the z, dimension is not supported for NestedTensorc              3   B   K   | ]  }|d k7  s	t        |        yw)r   N)r   ).0dr   s     r   	<genexpr>z$_wrap_jagged_dims.<locals>.<genexpr>3   s      CDqAF!$*Ds   
)r   r   r   tuple)
r   dimsr   r   r   wrapped_dimszero_in_dimsone_in_dimsapply	not_applys
   `         r   _wrap_jagged_dimsr(   "   s     68<=1%dA.L= $L|#Kk!2>.DWyi-eW4LYK:;
 	

 	CDCC  >s   A
schema_strreturnc                    | j                  d      }t        |D cg c]  }|j                  d       c}      }t        |      |z
  }t        |      |k\  rt        |      t        |      k  s7t	        d|j
                   d|  d| dt        |       dt        |       d      d	 d
 d d d}t        |      D ]  \  }	}
|
j                  d      \  }}|j                  d      }|r|d d n|}||j                         vrt        d|       |	t        |      k\  r!|st	        d|j
                   d|  d|        ||   ||	         rt	        d|j
                   d|  d| d| dt        ||	          
       y c c}w )Nz, ?NestedTensor (z): expected at least z arguments and at most z arguments, but got: z
 argumentsc                 \    t        | t        j                        xr t        | t               S N)
isinstancetorchTensorr   xs    r   <lambda>zcheck_schema.<locals>.<lambda>E   s!    z!U\\2V:a;V7VVr   c                 B    t        | t              xr | j                  d u S r0   )r1   r   _lengthsr4   s    r   r6   zcheck_schema.<locals>.<lambda>F   s!    
1l3 JJ$r   c                 "    t        | t              S r0   )r1   r   r4   s    r   r6   zcheck_schema.<locals>.<lambda>H   s    J|
r   c                      y)NTr   r4   s    r   r6   zcheck_schema.<locals>.<lambda>K   s    r   )tjtjt_allanyz: zUnknown arg type: z) missing required argument: z): z should be of type z, but got: )
splitsumendswithlen
ValueError__name__	enumeratekeysAssertionErrortype)r)   funcargskwargsnamed_arg_typesr5   num_optional_argsmin_argsarg_type_check_fnsinamed_arg_typenamearg_typeis_optionalnormalized_arg_types                  r   check_schemarW   8   s    &&t,OoFoQZZ_oFG?#&77HI!c$i33G&GDMM?!J<7LXJ W%%(%9$::O4yk%
 	
 W
  '7>'--d3h'',/:hsm&8&=&=&?? #56I5J!KLLD	> #DMM?!J< @2269  6!"56tAw?a
|3tf E zT$q']O= ! 8' Gs   E>aa_namebb_namec           	          |j                   |j                     |j                   |j                     k7  rt        d| j                   d| d| d      y )Nr-   z: expected  and z' to have the same exact offsets tensor.)_size_ragged_idxr   rE   )rJ   rX   rY   rZ   r[   s        r   check_ragged_dim_samer`   c   sZ     	wwq}}!77DMM?+fXU6( K) )
 	
 8r   c                 n    | j                   dz   }t        | j                  d |       t        |d |       k(  S )Nr   )r_   listr^   )ntsizeends      r   raggedness_matchesrf   p   s5    
..1
C#4Tc
#333r   c                 r    | j                   d   dk(  r$| j                  d      } | j                   d   dk(  r$| S Nr   r   )shapesqueeze)r;   s    r   squeeze_leading_onesrk   u   s6    & ''!*/IIaL ''!*/Hr   c                 f     t        t              sgt         t              s g  fd}|S )Nc                 H     D ]  } fd}D ]  } ||      ||<      S )Nc                       fd}|S )Nc                  <    t        g| i |  g| i |S r0   )rW   )rK   rL   aten_oprJ   r)   s     r   innerz@register_func.<locals>.wrapper.<locals>.get_inner.<locals>.inner   s,     TCDCFC9$9&99r   r   )rp   rq   rJ   r)   s   ` r   	get_innerz1register_func.<locals>.wrapper.<locals>.get_inner   s    : r   r   )rJ   rp   rr   tableaten_opsr)   tabless   `   r   wrapperzregister_func.<locals>.wrapper   s3    G  !*7!3g     r   )r1   rb   )ru   rt   r)   rv   s   ``` r   register_funcrw      s1    h%:fd# Nr   c           	         t         j                  | d       }||S t        j                  j                  | j
                  v rt        |D cg c]  }t        |t        j                         c}      }|dk(  rt        j                  t        |       S |dk(  r*t        d| g|i | t        j                  t        |       S y c c}w )Nr   r   zlhs: any, rhs: any)r	   getr2   Tag	pointwisetagsrA   r1   r3   	functoolspartialjagged_unary_pointwiserW   jagged_binary_pointwise)rJ   rK   rL   dispatch_funcr5   num_tensor_argss         r   lookup_jaggedr      s    $((t4M  yydii'DIDqz!U\\:DIJa$$%;TBB!-tEdEfE$$%<dCC Js   
!Cc                 V    | j                         | j                  | j                  d}|S )Noffsets_max_seqlen_min_seqlenr   )argrL   s     r   extract_kwargsr      s'    ;;=F
 Mr   c                 f    t         | |d   j                  g|dd  i |fi t        |d         S rh   )r   _valuesr   rJ   rK   rL   s      r   r   r      s@    T!W__2tABx2626DT!W6M r   c           	         |d   |d   }}t        |t              st        |t              sJ d| j                   d|j                   d|j                   }t        |t              rht        |t              rXt	        ||j                        r7t         | |j
                  |j
                  g|dd  i |fi t        |      S t        |      t        |t              }|rt        |      n
t        |      }|r||fn||f\  }}	|	j                         |j                         kD  rt        d      t        |	      }
|j                         |
j                         dz   k\  r;|r|j
                  |
fn|
|j
                  f\  }}t         | ||g|dd  i |fi |S |j                         |j                         k(  r|j                  d   |j                  d   k7  rt        |      g }t        |j                         |j                               D ]$  \  }}|j                   | ||g|dd  i |       & t        j                  |d      }t        |fi |S t        |      )	Nr   r   z&cannot call binary pointwise function z with inputs of shapes r]   r   z+NYI: broadcasting NT with T with larger dim)r   )r1   r   rE   ri   rf   r   r   r   r   NotImplementedErrorrk   zipunbindappendr2   cat)rJ   rK   rL   rX   rZ   mismatch_error_msga_is_ntextracted_kwargsrc   r;   
t_squeezedlhsrhsoutputsa_compb_comp
new_valuess                    r   r   r      sC   7DGqAa&*Q*EEE 1?V77)5		#  !\"z!\'B a)QYY		?DH??CQRSCT  -.. L)G,3~a(9J QFAq6EBuuw!"OPP%a(J	vvx:>>#a''/6BJJ
+Z<TSDc?DH??TCSTT
 	uuw!%%' 771:#122
 !!((*ahhj9NFFNN4DabDVDE :YYwA.
J;*:;; )
**r   c                    | t         j                  j                  j                  u rt	        |i |S | j
                  dk(  rdd}t        |||d      \  }}|j                  d      }t        |j                         |d   d      |d<   t        |j                         |d   d      |d<   t         | |j                  fi |fi t        |      S t        |       )	Nflattenc                      y r0   r   )input	start_dimend_dims      r   _flatten_sigz+jagged_torch_function.<locals>._flatten_sig  s    r   TrK   rL   normalize_to_only_use_kwargsr   r   r   )r   r?   )r2   _C_nnscaled_dot_product_attentionr   rE   r   popr   r   r   r   r   r   )rJ   rK   rL   r   _
new_kwargsinps          r   jagged_torch_functionr     s     uxx||8882DCFCC }}	!	 +tFQU
: nnW%"2GGIz+.	#

; !1GGIz),i!

9 D;
;S~c?RSS
d
##r   zself: jt_allc                    | t         j                  j                  j                  j                  k(  ry| t         j                  j                  j
                  j                  k(  r|d   j                  S | t         j                  j                  j                  j                  k(  rt        |d   j                        S | t         j                  j                  j                  j                  k(  rs|d   j                  Gt        t        |d   j                        t        j                  |d   j                  dd        z        S |d   j                  j!                         S | t         j                  j                  j"                  j                  k(  r|d   j$                  S | t         j                  j                  j&                  j                  k(  r|d   j                  j)                         S y )NFr   r   )r2   opsatenis_non_overlapping_and_densedefaultsym_sizer^   r   rC   	sym_numelr8   intrA   mathprodr   numel
sym_stride_stridessym_storage_offsetstorage_offsetr   s      r   tensor_attr_supported_getterr   "  sZ    uyy~~::BBBuyy~~&&...Aw}}uyy~~!!)))47==!!uyy~~''///7's47++,tyyaqr9J/KKLLAw$$&&uyy~~((000Awuyy~~00888Aw--// 9r   c                 "    t         j                  S r0   )r2   jaggedr   s      r   prim_layout_defaultr   C  s    <<r   c                 |    | t         j                  j                  j                  j                  k(  rt        d      y )NznNestedTensors does not support directly calling torch.ops.aten.size please use `nested_tensor.size()` instead.)r2   r   r   rd   r   r   r   s      r   tensor_attr_unsupported_getterr   H  s7    
 uyy~~""***9
 	
 +r   c                 8   ddl m} t        | ||d      \  }}|j                  d      }|j	                         y|j
                  dk7  ry|j                  dt        j                        |d<   |d   t        j                  k(  ry ||j                         fi |S )	Nr   )is_contiguous_for_memory_formatTr   r   Fr   memory_format)r   r   r   r   lengthsr_   ry   r2   contiguous_formatpreserve_formatvalues)rJ   rK   rL   r   r   r   r   s          r   is_contiguous_generalr   T  s    C&4TMAz ..
!C {{}  !",..00#J /"e&;&;;*3::<F:FFr   z!self: jt_all, memory_format: any?zinput: jt, weight: t, bias: t?c                     t        | ||d      \  }}|j                  d      }|d   }|d   }t         | |j                  fi |fi t	        |      S )NTr   r   weightbiasr   r   r   r   r   )rJ   rK   rL   r   r   r   r   r   s           r   linear_defaultr   r  s`    &4TMAz ..
!C!FfDS[[7J7O>#;NOOr   z6self: jt, grad_output: jt, weight: t, output_mask: anyc                    t        | ||d      \  }}|j                  d      }|j                  d      }|j                  d      }t        | |d|d       t        t	        j
                  |j                  |      fi t        |      }t	        j
                  |j                  j                  |j                        }	d }
||	|
fS )NTr   r   grad_outputr   self)	r   r   r`   r   r2   mmr   r   T)rJ   rK   rL   r   r   r   r   r   dsdwdbs              r   linear_backward_defaultr     s    
 '4TMAz ..
!C../K^^H%F$V[-H	$$f-
1?1L
B 
+%%''	5B	BB<r   zself: jtc                     t        | ||d      \  }}|j                  d      }|j                  d        | |j                  fi |}t        |fi t	        |      S )NTr   r   layoutr   r   r   r   r   )rJ   rK   rL   r   r   r   r   s          r   to_copy_defaultr     s]    &4TMAz ..
!CNN8ckk0Z0J
:nS&9::r   z&self: jt, dim: any, half_to_float: anyz!self: jt, float: any, train: any?c                     t        | ||d      \  }}|j                  d      } | |j                  fi |\  }}t        |fi t	        |      t        |fi t	        |      fS NTr   r   r   )rJ   rK   rL   r   r   r   out1out2s           r   native_dropout_defaultr     sp     '4TMAz ..
!Cckk0Z0JD$T1^C01T1^C01 r   z%grad_output: jt, mask: jt, scale: anyc                     t        | ||d      \  }}|j                  d      }|j                  d      }t         | |j                  |j                  fi |fi t	        |      S )NTr   r   maskr   )rJ   rK   rL   r   r   r   r   s          r   native_dropout_backward_defaultr     sl    
 '4TMAz ../K>>&!D[  $,,=*=

% r   z!self: jt, dim: any, keepdim: any?c                 
   t        | ||d      \  }}|j                  d      }|d   st        d      |d   }t        t	        |j
                        |d      |d<   t         | |j                  fi |fi t        |d         S )	NTr   r   keepdimz1prod(): keepdim=True must be set for NestedTensorr   r   r   )	r   r   r   r   rC   ri   r   r   r   )rJ   rK   rL   r   r   r   r   s          r   prod_dim_intr     s    &4TMAz ..
!C i NOO
U
C(SYYfEJuS[[7J7S>$q';RSSr   z#self: jt, split_size: any, dim: anyc                     t        | ||d      \  }}|j                  d      t        j                         |d   d      |d<   t	        fd | j
                  fi |D              S )NTr   r   r   r@   c              3   J   K   | ]  }t        dd |it                yw)r   Nr   )r   r   )r   r5   r   s     r   r    zsplit_tensor.<locals>.<genexpr>  s+      0A 	5A5!450s    #)r   r   r   r   r!   r   rJ   rK   rL   r   r   r   s        @r   split_tensorr     sr     '4TMAz ..
!C(Ju4EwOJu ckk0Z0  r   z$self: jt, split_sizes: any, dim: anyc           
          t        | ||d      \  }}|j                  d      }t        |j                         |d   d      |d<    | |j                  fi |D cg c]  }t        dd|it        |       c}S c c}w )NTr   r   r   split_with_sizesr   r   )r   r   r   r   r   r   r   )rJ   rK   rL   r   r   r   r5   s          r   split_with_sizes_defaultr     s     '4TMAz ..
!C(	:e$&8Ju ckk0Z00A 	5A5!450  s   A:zself: jt_all, dim: any?c                    t        | ||d      \  }}|d   }|dk7  rt        d      |j                  d      }|j                         }|j	                         }|j                         }	|j                  dk7  rt        d      |	2t        j                  ||j                         j                               S t        |	j                  d         D 
cg c]  }
|||
   ||
   |	|
   z     c}
S c c}
w )	NTr   r   r   z2unbind(): only supported for NestedTensor on dim=0r   r   zDunbind(): only supported for NestedTensor when jagged dimension is 1)r   r   r   r   r   r   r_   r2   r@   difftolistrangeri   )rJ   rK   rL   r   r   r   r   r   r   r   rQ   s              r   
unbind_intr     s     '4TMAz U
C
axOPP
..
!CZZ\FkkmGkkmG
!R
 	
 {{67<<>#8#8#:;;@EgmmTUFV@W@W1wqzWQZ'!*46@W  s   C,zself: jt, dim: anyc                    t        | ||d      \  }}|j                  d      }|j                  }|j                  }|d   }t	        t        |j                        dz   |d      |d<   t         | |fi |fi t        |      S )NTr   r   r   r   	unsqueeze)	r   r   r   r   r   rC   ri   r   r   )	rJ   rK   rL   r   r   r   r   r   r   s	            r   unsqueeze_defaultr   '  s    &4TMAz ..
!C[[FkkG U
C(SYY!);S+NJuV2z2JnS6IJJr   ztensors: any, dim: anyc                    t        | ||d      \  }}|j                  d      }|D cg c]  }|j                  s| }}t        |      dkD  sJ |d   }|D cg c]!  }|j                  r|n|j	                  |      # }}|d   }	t        t        |j                        |	d      |d<   t         | |D cg c]  }|j                   c}fi |fi t        |d         S c c}w c c}w c c}w )NTr   tensorsr   r   r   )
r   r   	is_nestedrC   	expand_asr   ri   r   r   r   )
rJ   rK   rL   r   r   r   r;   nestedfirstr   s
             r   cat_defaultr   7  s    &4TMAz nnY'G !0AAKKaF0v;??1IEAHIAAKKqQ[[%77GI U
C(U[[)93FJu)Aaii)8Z8<J7ST:<V  1 J *s   C C &C%4C*zself: jt, other: anyc                 :   t        | ||d      \  }}|j                  d      }|j                  d      }|j                  r3|j                  s't         | |j                  |fi |fi t        |      S |j                  rx|j                  rl|j                         dkD  rY|j                         dkD  rFt        ||j                        r0t         | |j                  |j                        fi t        |      S t        d|j                   d|j                         )NTr   r   other   z1matmul(): not supported between inputs of shapes r]   )
r   r   r   r   r   r   r   rf   ri   r   rJ   rK   rL   r   r   r   r   s          r   matmul_defaultr  N  s    &4TMAz ..
!CNN7#E
}}U__e2z2
6DS6I
 	
 
5??779q=UYY[1_1CC1US[[%-- @XNSVDWXX

;CII;eEKK=Y r   z#self: jt, size: any, implicit: any?c                 *   t        | ||d      \  }}|j                  d      }|d   }d|vs|j                  d      rJ t        ||      st        d|j                   d|       dg|d	d  }t         | |j                  |      fi t        |      S )
NTr   r   rd   implicitzexpand(): cannot expand shape z -> r?   r   )r   r   rf   r   ri   r   r   r   )rJ   rK   rL   r   r   r   rd   
expand_args           r   expand_defaultr  e  s     '4TMAz ..
!CfDj(*..2LMMc4(;CII;d4&QRRtABxJS[[*5M9LMMr   zself: t, other: jtc                     t        | ||d      \  }}|j                  d      }|j                  d      }t         | ||j                        fi t	        |      S )NTr   r   r   r   r  s          r   expand_as_defaultr	  x  sW    &4TMAz ..
!CNN7#ES%--0JN54IJJr   z"condition: jt, self: jt, other: jtc                 `   t        | ||d      \  }}|j                  d      }|j                  d      }|j                  d      }|j                  |j                  cxk(  r|j                  k(  sJ  J t         | |j                  |j                  |j                  fi |fi t        |      S )NTr   	conditionr   r   )r   r   ri   r   r   r   )rJ   rK   rL   r   r   r  r   r   s           r   
where_selfr    s    &4TMAz {+I
..
!CNN7#E??ekk6SYY66666YU]]IjI

# r   zself: jt, device: any?c                     t        | ||d      \  }}|j                  d      }t         | |j                  fi |fi t	        |      S r   r   r   s         r   _pin_memory_defaultr    sL    &4TMAz ..
!CS[[7J7O>#;NOOr   c                 n    t        | ||d      \  }}|j                  d      } | |j                  fi |S r   )r   r   r   r   s         r   is_pinned_defaultr    s=    &4TMAz ..
!C*z**r   zself: jt, other: jtc                 @    |d   j                   |d   j                   k(  S rh   )r^   r   s      r   is_same_size_defaultr    s    7==DGMM))r   z/self: jt, dim: any?, keepdim: any?, dtype: any?c                 X   t        | ||d      \  }}|j                  d      }|j                  dk(  sJ t        |j	                         |d   d      \  |d<   }|s&t         | |j                  fi |fi t        |      S  | |j                  fi |}|d   r|j                  d      }|S )	NTr   r   r   r   rA   r   r   )	r   r   r_   r(   r   r   r   r   r   )rJ   rK   rL   r   r   r   ragged_reduced_awayouts           r   sum_dim_IntListr    s     '4TMAz ..
!C??a->	:e$e.*Ju* D;
;S~c?RSS 3;;-*-i --"C
r   zself: jt, dim0: any, dim1: anyc           
         t        | ||d      \  }}ddlm} |j                  d      } ||j	                         |d   |d   f      \  }}||j
                  k(  s||j
                  k(  r|dk(  s|dk(  rt        d      ||j
                  k(  r|}	n|}	t        |j                         j                  t        t        |j                        |      t        t        |j                        |            fi t        |      d	|	iS t        |j	                         |d   d
      |d<   t        |j	                         |d   d
      |d<   t         | |j                  fi |fi t        |      S )NTr   r   r   r   dim0dim1z?Transpose is not supported on the batch dimension for jagged NTr_   	transpose)r   r   r   r   r   r_   rD   r   r   r  r   rC   r^   r   r   r   )
rJ   rK   rL   r   r   r   r   r  r  to_dims
             r   transpose_intr    s^   &4TMAz 6
..
!C"3779z&/A:fCU.VWJD$
 s$#//"919	Q  3??"FFJJL""#C		ND9#C		ND9

 S!
 
 	
 *#'')Z5GUJv)#'')Z5GUJvS[[7J7O>#;NOOr   zself: jt, size: anyc                 `   t        | ||d      \  }}|j                  d      }|j                  d      }t        |      dk  st        ||      st	        d|j
                   d|       |j                  j
                  d   g|d	d  z   }t         | |j                  |      fi t        |      S )
NTr   r   rd   r  zview(): cannot view shape z as r   r   )	r   r   rC   rf   r   ri   r   r   r   )rJ   rK   rL   r   r   r   rd   jagged_sizes           r   view_defaultr    s    &4TMAz ..
!C>>&!D 4y1}.sD97		{$tfMNN;;$$Q'(483KS[[+6N.:MNNr   zDinput: jt, normalized_shape: any, weight: any?, bias: any?, eps: anyc                 *   t        | ||d      \  }}|j                  d      }|d   }|j                         dk  s|j                         t        |      z
  dk  rt	        d       | |j
                  fi |\  }}}	t        |fi t        |      ||	fS )NTr   r   normalized_shaper  r   zJlayer_norm(): normalizing over ragged dim not supported for nested tensors)r   r   r   rC   r   r   r   r   )
rJ   rK   rL   r   r   r   r!  outputmeanstds
             r   native_layer_norm_defaultr%    s    
 '4TMAz ..
!C!"45 wwy1}S)9%::a?X
 	
 S[[7J7FD#7>##67sCCr   zpgrad_out: jt, input: jt, normalized_shape: any, mean: any, rstd: any, weight: any?, bias: any?, output_mask: anyc                     t        | ||d      \  }}|j                  d      }|j                  d      } | |j                  |j                  fi |\  }}}	|d ||	fS t        |fi t	        |      ||	fS )NTr   grad_outr   r   )
rJ   rK   rL   r   r   r'  r   d_inputd_gammad_betas
             r   "native_layer_norm_backward_defaultr+    s    
 '4TMAz ~~j)H
..
!C#H$4$4ckkPZPGWfgv&&8N3$78'6JJr   zself: jt, dim: any, index: anyc                     t        | ||d      \  }}|j                  d      }t        |j                         |d   d      |d<   t	         | |j
                  fi |fi t        |      S )NTr   r   r   selectr   r   r   r   r   r   r   r   s         r   
select_intr/  (  sj    &4TMAz ..
!C(Ju4ExPJuS[[7J7O>#;NOOr   z7self: jt, dim: any?, start: any?, end: any?, step: any?c                     t        | ||d      \  }}|j                  d      }t        |j                         |d   d      |d<   t	         | |j
                  fi |fi t        |      S )NTr   r   r   slicer.  r   s         r   slice_tensorr2  4  sl    
 '4TMAz ..
!C(Ju4EwOJuS[[7J7O>#;NOOr   z{input: jt, weight: t, bias: t?, stride: any, padding: any, dilation: any, transposed: any, output_padding: any, groups: anyc                     t        | ||d      \  }}|j                  d      }t         | |j                  fi |fi t	        |      S r   r   r   s         r   convolution_defaultr4  C  sN     '4TMAz ..
!CS[[7J7O>#;NOOr   z.self: jt, dim: any?, keepdim: any, dtype: any?c                     t        | ||d      \  }}|j                  d      }t        |j                         |d   d   d      g|d<   t	         | |j
                  fi |fi t        |      S )NTr   r   r   r   r#  r.  r   s         r   mean_dimr6  R  st     '4TMAz ..
!C)#'')Z5Fq5I6RSJuS[[7J7O>#;NOOr   c                    t        | ||d      \  }}|j                  d      }|D ]p  }t        |t              st	        d      |j                         |d   j                         k7  rt	        d      t        ||d   j                        rgt	        d       t        |d   j                         dz   |d	   d
      |d	<   t         | |D cg c]  }|j                   c}fi |fi t        |d         S c c}w )NTr   r   z+stack(): expected all nested tensors inputsr   z9stack(): expected all nested tensors to have the same dimzFstack(): expected all nested tensors to have the same nested structurer   r   stack)r   r   r1   r   r   r   rf   ri   r   r   r   )rJ   rK   rL   r   r   r   r;   s          r   stack_defaultr9  a  s	   &4TMAz
 nnY'G!\*LMM557gajnn&&K  "!WQZ%5%56X   )
1j/Ju )Aaii)8Z8<J7ST:<V )s   C7zQweight: t, indices: jt, padding_idx: any?, scale_grad_by_freq: any?, sparse: any?c                     t        | ||d      \  }}|j                  d      }|j                  d      }t         | ||j                  fi |fi t	        |      S )NTr   indicesr   r   )rJ   rK   rL   r   r   r;  r   s          r   embedding_defaultr<    sf    
 '4TMAz
 nnY'G^^H%FVW__3
37Eg7N r   )xr}   r   r2   torch.nested._internal.sdpar   nested_tensorr   typingtorch.fx.operator_schemasr   r   ListAny__annotations__r	   Dictr   r   r(   strrW   r`   rf   rk   rw   r~   register_jagged_funcOptionalCallabler   r   r   r   r   r   r   r   r   r   r   r   r   r   r   primr   r   rd   r   is_contiguousr   r   linearr   linear_backwardr   _to_copyr   	ones_like
zeros_like
randn_likedetach_softmaxnative_dropoutr   native_dropout_backwardr   r   dim_intr   r@   r3   r   r   r   r   r   r   r   r   r   r   matmulr  expandr  r   r	  wherer   r  _pin_memoryr  	is_pinnedr  is_same_sizer  rA   dim_IntListr  r  r  viewr  native_layer_normr%  native_layer_norm_backwardr+  r-  r/  r1  r2  convolutionr4  r#  r6  r8  r9  	embeddingr<  r   r   r   <module>rb     s      K '  8c #% $sCx. %
%
.,(S (D (V

#&
+7
AD
	
4
0. )y((8HI HX,> $:+z$: 		33;;		''		""		  ((		!!))		))11 
0
0, eiinn++33^D E 
YY^^  !
	
 eiinn22::NKG LG0 	IINN  ..0S
 eiinn++335UV	P W	P 	IINN""**<	$ eiinn--55zB; C; 		  ((		!!))		!!))		%%	   	IINN##%M
 	IINN!!))+N

 	IINN**22+			 eiinn))113VWT XT  	IINN!F 	IINN##++-S" eiinn++//1JK L6 eiinn..668LMK NK eiinn((002JK L, eiinn++335KL M, 	IINN!!#HNN  eiinn..668LMK NK eiinn**//1UV W" eiinn0088:RSP TP eiinn..668PQ+ R+ eiinn1199;PQ* R* 	IINN""$U, eiinn..224TU"P V"PJ eiinn))113HIO JO  	IINN$$,,JD	D$ 	IINN--55v
K	
K eiinn++//1QRP SP 	IINN=P	P 	IINN&&G
P
P 	IINNM	P	P eiinn**224LM N< 	IINN$$W	r   