o
    ,i;                  
   @   st  U d dl Z 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T d dl	m
  mZ d dlmZ g Zee ed< i Zeeef ed< d	d
 Z	dddZdd ZdeddfddZdededededdf
ddZdd Zdd Zdd  Ze eeZde e! fd!d"Z"d#d$ Z#d%d& Z$d'd( Z%d)d* Z&eej'j(j)j*ej'j(j+j*ej'j(j,j*ej'j(j-j*ej'j(j.j*ej'j(j/j*ej'j(j0j*gd+d,d- Z1eej'j2j3j*d+d.d/ Z4eej'j(j5j*gd+d0d1 Z6eej'j(j7j*d+d2d3 Z8eej'j(j7j9d4e8 eej'j(j:j*d5d6d7 Z;eej'j(j<j*d8d9d: Z=eej'j(j>j*d+d;d< Z?eej'j(j@j*ej'j(jAj*ej'j(jBj*ej'j(jCj*ej'j(jDj*gd+e$ eej'j(jEj*d=e$ eej'j(jFj*d>d?d@ ZGeej'j(jHj*dAdBdC ZIeej'j(jJjKdDdEdF ZLeej'j(jMjNdGdHdI ZOeej'j(jPj*dJdKdL ZQeej'j(jRj*dMdNdO ZSeej'j(jTjUdPdQdR ZVeej'j(jWj,dSdTdU ZXeej'j(jYj*dSdVdW ZZeej'j(j[j*dXdYdZ Z\eej'j(j]j*d[d\d] Z^eej'j(j_j*d^d_d` Z`eej'j(jaj*dadbdc Zbeej'j(jcjddddedf Zeeej'j(jfj*dgdhdi Zgeej'j(jhj*dgdjdk Zieej'j(jjj*dldmdn Zkeej'j(jljmdodpdq Zneej'j(jojUdrdsdt Zpeej'j(jqj*ej'j(jrj*gdudvdw Zseej'j(jtj*dxdydz Zueej'j(jvj*d{d|d} Zweej'j(jxjUd~dd Zyeej'j(jzjNddd Z{eej'j(j|j*ddd Z}eej'j(j~j,ddd Zeej'j(jj*dXdd Zeej'j(jj*ddd Zeej'j(jj*ej'j(jj*gd+dd Zeej'j(jj*ddd Zeej'j(jj*d+dd Zeej'j(jj*d+dd Zeej'j(jj*d+dd Zeej'j(jj*ddd ZejddZ(e(ded e(ded e(ded W d   dS 1 s3w   Y  dS )    N)#jagged_scaled_dot_product_attention   NestedTensor)*)normalize_function__all__JAGGED_OPS_TABLEc                 C   s(   |dkr|| k s
J |dk rdS |d S )Nr      r    )ndimdimr   r   X/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/torch/nested/_internal/ops.py_outer_to_inner_dim   s   r   TFc                 C   sX   ddl m} || |}|dkrt| d|dkr#|s#t| d|r*t| |S |S )Nr   canonicalize_dimsr   z+(): not supported for NestedTensor on dim=1z+(): not supported for NestedTensor on dim=0)torch._prims_commonr   RuntimeErrorr   )r   r   op_nameconvert_to_inner_dimallow_batch_dimr   wrappedr   r   r   _wrap_jagged_dim   s   
r   c                    s|   ddl m   fdd|D }d|v }d|v }||A r1|r dnd\}}t| d| d	| d
tfdd|D |fS )Nr   r   c                    s   g | ]} |qS r   r   .0dr   r   r   r   
<listcomp>,       z%_wrap_jagged_dims.<locals>.<listcomp>r   )batchragged)r    r   z(): applying over the z dimension, but not the z, dimension is not supported for NestedTensorc                 3   s"    | ]}|d krt  |V  qdS )r   N)r   r   )r   r   r   	<genexpr>8   s     z$_wrap_jagged_dims.<locals>.<genexpr>)r   r   r   tuple)r   dimsr   wrapped_dimszero_in_dimsone_in_dimsapply	not_applyr   r   r   _wrap_jagged_dims'   s   r)   
schema_strreturnc                    s  |  d}dd |D d}t|| }|d dkr"|d d }n't||kr0t|t|ksItd|j d|  d	| d
t| dt| ddd dd dd dd d}t|D ]k\}}	|	 d\}
}|d}|rt|d d n|}|| vrtd| |t|kr|std|j d|  d|
 q\||  |f fdd	}||| sdddddd}td|j d|  d|
 d ||  q\d S )!Nz, c                 S   s   g | ]}| d qS )?)endswithr   xr   r   r   r   ?   r   z check_schema.<locals>.<listcomp>Tz...NestedTensor (z): expected at least z arguments and at most z arguments, but got: z
 argumentsc                 S   s   t | tjot | t S N)
isinstancetorchTensorr   r/   r   r   r   <lambda>N       zcheck_schema.<locals>.<lambda>c                 S   s   t | to| jd u o| jdkS Nr   )r4   r   _lengths_ragged_idxr7   r   r   r   r8   O   s   
 
c                 S   s
   t | tS r3   )r4   r   r7   r   r   r   r8   R   s    c                 S   s   dS )NTr   r7   r   r   r   r8   U   s    )tjtjt_allanyz: r,   zUnknown arg type: z) missing required argument: c                    s   |r
| d u p	 | S  | S r3   r   )r/   is_optional	_check_fnr   r   check_fnh   s   zcheck_schema.<locals>.check_fntensorzoptional tensorz%contiguous jagged layout NestedTensorzjagged layout NestedTensorz
<any type>)r=   zt?r>   r?   r@   z): expected z	 to be a )	splitcountlen
ValueError__name__	enumerater-   keysAssertionError)r*   funcargskwargsnamed_arg_typesnum_optional_argsmin_argsarg_type_check_fnsinamed_arg_typenamearg_typerA   normalized_arg_typerD   type_to_descr   rB   r   check_schema=   s`   


r[   aa_namebb_namec                 C   s:   |j |j |j |j krtd| j d| d| dd S )Nr1   z: expected  and z' to have the same exact offsets tensor.)_sizer<   r   rJ   )rN   r\   r]   r^   r_   r   r   r   check_ragged_dim_same}   s
   rb   c                 C   sL   | j d }| jd | }|d | }t|t|ko%tdd t||D S )Nr   c                 s   s$    | ]\}}||kp|d kV  qdS )r0   Nr   )r   nssr   r   r   r!      s   " z%raggedness_matches.<locals>.<genexpr>)r<   ra   rH   allzip)ntsizeend	nt_raggedsize_raggedr   r   r   raggedness_matches   s   
rl   c                 C   s*   | j d dkr| d} | j d dks| S Nr   r   )shapesqueeze)r=   r   r   r   squeeze_leading_ones   s   
rp   c                    s4   t  ts g t tsg fdd}|S )Nc                    s2   D ]} fdd}D ]}||||< qq S )Nc                    s    fdd}|S )Nc                     s.   t g| R i |  g| R i |S r3   )r[   )rO   rP   )aten_oprN   r*   r   r   inner   s   z@register_func.<locals>.wrapper.<locals>.get_inner.<locals>.innerr   )rq   rr   )rN   r*   )rq   r   	get_inner   s   z1register_func.<locals>.wrapper.<locals>.get_innerr   )rN   rq   rs   tableaten_opsr*   tables)rN   r   wrapper   s   zregister_func.<locals>.wrapper)r4   list)rw   rv   r*   rx   r   ru   r   register_func   s   

rz   c                 O   s   t | d }|d ur|S tjj| jv rHtdd |D }|dkr2td| g|R i | t	t
| S |dkrHtd| g|R i | t	t| S d S )Nc                 s   s    | ]	}t |tjV  qd S r3   )r4   r5   r6   r.   r   r   r   r!      s    z lookup_jagged.<locals>.<genexpr>r   zself: jt_all, ...r
   zlhs: any, rhs: any, ...)r	   getr5   Tag	pointwisetagssumr[   	functoolspartialjagged_unary_pointwisejagged_binary_pointwise)rN   rO   rP   dispatch_funcnum_tensor_argsr   r   r   lookup_jagged   s   r   c                 C   s   |   | j| jd}|S )Noffsets_metadata_cacher<   r   )argrP   r   r   r   extract_kwargs   s
   r   c                 O   s8   t | |d jg|dd  R i |fi t|d S rm   )r   _valuesr   rN   rO   rP   r   r   r   r      s
   "
r   c                 O   s  |d |d }}t |tst |tsJ d}t |trMt |trMt||jrAt| |j|jg|dd  R i |fi t|S t|| j|j|jt |t}|rXt|nt|}|rb||fn||f\}}	|		 |	 krtt
dt|	}
|	 |
	 d kr|r|j|
fn|
|jf\}}t| ||g|dd  R i |fi |S |	 |	 kr|jd |jd krt|| j|j|jg }t| | D ]\}}|| ||g|dd  R i | qtj|dd}t|fi |S t|| j|j|j)Nr   r   zHcannot call binary pointwise function {} with inputs of shapes {} and {}r
   z+NYI: broadcasting NT with T with larger dimr   )r4   r   rl   ra   r   r   r   formatrJ   r   NotImplementedErrorrp   rn   rf   unbindappendr5   cat)rN   rO   rP   r\   r^   mismatch_error_msga_is_ntextracted_kwargsrg   r=   
t_squeezedlhsrhsoutputsa_compb_comp
new_valuesr   r   r   r      s@   "
,(r   c                 O   s   | t jjju rt|i |S | jdkrmddd}t|||dd\}}|d}t|	 |d	 dd
d}t|	 |d dd
d}||krE|S t
tj|j||d  }	g |jd | |	|j|d d  R }
|j|
 S t| )Nflattenr   r0   c                 S   s   d S r3   r   )input	start_dimend_dimr   r   r   _flatten_sig,  s   z+jagged_torch_function.<locals>._flatten_sigTrO   rP   normalize_to_only_use_kwargsr   r   F)r   r   r   )r   r0   )r5   _C_nnscaled_dot_product_attentionr   rJ   r   popr   r   r   reduceoperatormulrn   reshaper   )rN   rO   rP   r   _
new_kwargsinpr   r   product	new_shaper   r   r   jagged_torch_function#  s(   



*
r   zself: jt_allc                 O   s   | t jjjjkr
dS | 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t jjj
jfv rW|d jd urPtt|d jt|d jdd   S |d j
 S | t jjjjkrd|d jS | t jjjjkrs|d j S d S )NFr   r
   )r5   opsatenis_non_overlapping_and_densedefaultsym_sizera   r   rH   	sym_numelnumelr;   intr   mathprodr   
sym_stride_stridessym_storage_offsetstorage_offsetr   r   r   r   tensor_attr_supported_getterH  s   
*
r   c                 O   s   t jS r3   )r5   jaggedr   r   r   r   prim_layout_defaultj  s   r   c                 O   s   | t jjjjkrtdd S )NznNestedTensors does not support directly calling torch.ops.aten.size please use `nested_tensor.size()` instead.)r5   r   r   rh   r   r   r   r   r   r   tensor_attr_unsupported_gettero  s
   r   c                 O   sp   ddl m} t| ||dd\}}|d}| d urdS |dtj|d< |d tjkr/dS ||j	fi |S )Nr   )is_contiguous_for_memory_formatTr   r   Fmemory_format)
r   r   r   r   lengthsr{   r5   contiguous_formatpreserve_formatr   )rN   rO   rP   r   r   r   r   r   r   r   is_contiguous_general{  s   

r   z!self: jt_all, memory_format: any?zinput: jt, weight: t, bias: t?c                 O   @   t | ||dd\}}|d}t| |jfi |fi t|S NTr   r   r   r   r   r   r   rN   rO   rP   r   r   r   r   r   r   linear_default  
   

"r   z6self: jt, grad_output: jt, weight: t, output_mask: anyc                 O   s   t | ||dd\}}|d}|d}|d}t| |d|d tt|j|fi t|}t|jj|j}	d }
||	|
fS )NTr   r   grad_outputweightself)	r   r   rb   r   r5   mmr   r   T)rN   rO   rP   r   r   r   r   r   dsdwdbr   r   r   linear_backward_default  s   




r   c           
      O   s   ddl m} t| ||dd\}}|d}|d | |jfi |}|jj|jd}||j ||< t|}	||	d< t	|fi |	S )	Nr   )_tensor_symint_registryTr   r   layout)devicer   )
nested_tensorr   r   r   r   _offsetstor   r   r   )
rN   rO   rP   r   r   r   r   r   new_offsets
inp_kwargsr   r   r   to_copy_default  s   


r   z&self: jt, dim: any, half_to_float: anyz!self: jt, float: any, train: any?c                 O   s\   t | ||dd\}}|d}| |jfi |\}}t|fi t|t|fi t|fS r   r   r   r   r   r   )rN   rO   rP   r   r   r   out1out2r   r   r   native_dropout_default  s   

r   z%grad_output: jt, mask: jt, scale: anyc                 O   sN   t | ||dd\}}|d}|d}t| |j|jfi |fi t|S )NTr   r   maskr   )rN   rO   rP   r   r   r   r   r   r   r   native_dropout_backward_default  s   


r   z!self: jt, dim: any, keepdim: any?c                 O   sr   t | ||dd\}}|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   rH   ra   r   r   r   )rN   rO   rP   r   r   r   r   r   r   r   prod_dim_int  s   

&r   z#self: jt, split_size: any, dim: anyc                    sZ   t | ||dd\}}|d t  |d d|d< t fdd|  jfi |D S )NTr   r   r   rF   c                 3   s&    | ]}t dd |it V  qdS )valuesNr   r   r   r.   r   r   r   r!     s
    
zsplit_tensor.<locals>.<genexpr>)r   r   r   r   r"   r   rN   rO   rP   r   r   r   r   r   split_tensor  s   

r   z$self: jt, split_sizes: any, dim: anyc                    sV   t | ||dd\}}|d t  |d d|d<  fdd|  jfi |D S )NTr   r   r   split_with_sizesc                    "   g | ]}t dd |it qS r   r   r   r.   r   r   r   r   -      z,split_with_sizes_default.<locals>.<listcomp>)r   r   r   r   r   r   r   r   r   split_with_sizes_default  s   


r   z self: jt, chunks: any, dim: any?c                    s   t | ||dd\}}|dt |d ddd|d< |d dkrn|d }jd }t|| }j }|	|}	d	d
 |	D }
dd
 |
D }
fdd
|
D dd
 |	D }j
|  fdd
td|D S fdd
| j
fi |D S )NTr   r   r   chunk)r   r   chunksc                 S   s   g | ]	}t j|d dqS )r   r   )r5   cumsumr.   r   r   r   r   G  s    z!chunk_default.<locals>.<listcomp>c                 S   s   g | ]
}t j|d ddqS ))r   r   r   )value)Fpadr.   r   r   r   r   H  s    c                    s   g | ]}| j d qS ))r   r<   )r<   )r   per_offsetsr   r   r   r   I  s    
c                 S   s   g | ]}|   qS r   )r   itemr.   r   r   r   r   O  r9   c                    s&   g | ]}t dd  | i| qS r   r   r   rU   )chunk_valuesnested_kwargsr   r   r   R  s    c                    r   r   r   r.   r   r   r   r   W  r   )r   r   r   r   ra   r   ceilr   diffr   r   rF   range)rN   rO   rP   r   r   r   	dim0_size
chunk_sizer   chunked_lengthschunked_offsetssplit_sizesr   )r   r   r   r   chunk_default3  s4   







r  zself: jt_all, dim: any?c                    s   t | ||dd\}}|d }|dkrtd|d}| | |  |j d u r<tj	 
 d dS dkrDtd	t jd D ]}|  |  jd  kr`td
qK fddt jd D S )NTr   r   r   z2unbind(): only supported for NestedTensor on dim=0r   r   r   zAunbind(): nested tensor ragged_idx out of bounds (should be >= 1)zMunbind(): nested tensor offsets and lengths do not match ragged_idx dimensionc                    s*   g | ]}t jd  |  | dqS )r   )r   startlength)r5   narrowr   r   r   
ragged_idxr   r   r   r   z  s    zunbind_int.<locals>.<listcomp>)r   r   r   r   r   r   r<   r5   rF   r  tolistr  rn   )rN   rO   rP   r   r   r   r   rU   r   r  r   
unbind_int]  s4   

r  zself: jt, dim: anyc                 O   s^   t | ||dd\}}|d}|j}tt|j|d d|d< t| |fi |fi t|S )NTr   r   r   ro   r   r   r   r   rH   ra   r   r   )rN   rO   rP   r   r   r   r   r   r   r   squeeze_dim  s   

 r  c                 O   sf   t | ||dd\}}|d}|j}|d }tt|jd |d|d< t| |fi |fi t|S )NTr   r   r   r   	unsqueezer  )rN   rO   rP   r   r   r   r   r   r   r   r   unsqueeze_default  s   

 r  ztensors: any, dim: anyc                    s   t | ||dd\}}|d}dd |D }t|dksJ |d   fdd|D }|d }tt j|d	|d< t| d
d |D fi |fi t|d S )NTr   tensorsc                 S   s   g | ]}|j r|qS r   )	is_nestedr   r=   r   r   r   r     r   zcat_default.<locals>.<listcomp>r   c                    s    g | ]}|j r	|n| qS r   )r  	expand_asr  firstr   r   r     s     r   r   c                 S      g | ]}|j qS r   r   r  r   r   r   r         )r   r   rH   r   rn   r   r   )rN   rO   rP   r   r   r  nestedr   r   r  r   cat_default  s   


r  zself: jt, other: anyc                 O   s   t | ||dd\}}|d}|d}|jr,|js,t| |j|fi |fi t|S |jrS|jrS| dkrS| dkrSt||jrSt| |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   rl   ra   r   rn   rN   rO   rP   r   r   r   r  r   r   r   matmul_default  s"   


$r"  z#self: jt, size: any, implicit: any?c                 O   s   t | ||dd\}}|d}|d }d|vs|drJ t||s.td|j d| dg|d	d  }t| |j|fi t|S )
NTr   r   rh   implicitzexpand(): cannot expand shape z -> r0   r
   )r   r   rl   r   ra   r   r   r   )rN   rO   rP   r   r   r   rh   
expand_argr   r   r   expand_default  s   


r%  zself: t, other: jtc                 O   sD   t | ||dd\}}|d}|d}t| ||jfi t|S )NTr   r   r  r   r!  r   r   r   expand_as_default  s   


r&  z"condition: jt, self: jt, other: jtc                 O   s~   t | ||dd\}}|d}|d}|d}|j|j  kr'|jks*J  J t| |j|j|jfi |fi t|S )NTr   	conditionr   r  )r   r   ra   r   r   r   )rN   rO   rP   r   r   r'  r   r  r   r   r   
where_self  s   



"r(  zself: jt, device: any?c                 O   r   r   r   r   r   r   r   _pin_memory_default  r   r)  c                 O   s0   t | ||dd\}}|d}| |jfi |S r   )r   r   r   r   r   r   r   is_pinned_default  s
   

r*  zself: jt_all, other: jt_allc                 O   s   |d j |d j kS rm   )ra   r   r   r   r   is_same_size_default  s   r+  z/self: jt, dim: any?, keepdim: any?, dtype: any?c                 O   s   t | ||dd\}}|d}|jdksJ t| |d d\|d< }|s7t| |jfi |fi t|S | |jfi |}|d rI|d}|S )	NTr   r   r   r   r   r   r   )	r   r   r<   r)   r   r   r   r   r  )rN   rO   rP   r   r   r   ragged_reduced_awayoutr   r   r   sum_dim_IntList  s   

"
r.  z"self: jt_all, dim0: any, dim1: anyc                 O   s0  t | ||dd\}}ddlm} |d}|| |d |d f\}}|jd ur-td||jks7||jkro|dks?|dkrCtd	||jkrK|}	n|}	t|}
|	|
d
< t	|
 tt|j|tt|j|fi |
S t| |d d|d< t| |d d|d< t	| |jfi |fi t|S )NTr   r   r   r   dim0dim1zDtranspose(): not supported on jagged layout nested tensor with holesz?Transpose is not supported on the batch dimension for jagged NTr<   	transpose)r   r   r   r   r   r;   rI   r<   r   r   r   r1  r   rH   ra   r   r   )rN   rO   rP   r   r   r   r   r/  r0  to_dimr   r   r   r   transpose_int1  s>   



"r3  zself: jt_all, size: anyc                    s   t | ||dd\}}|d|djdkr.tjtkr.tdj d dtd	k s9tsDtd
j d fdd  fddttd D }t	| j
|fi tS )NTr   r   rh   r   zVview(): does not support ragged_idx != 1 except when inp._size == size. inp._size is (z) and size is (z).r   zview(): cannot view shape z as c                    s&   |  j d kr j| S | d  S r:   )r<   r   rh   )	inner_idx)r   rh   r   r   get_inner_size  s   z$view_default.<locals>.get_inner_sizec                    s   g | ]} |qS r   r   r   )r5  r   r   r     s    z view_default.<locals>.<listcomp>)r   r   r<   r"   ra   r   rH   rl   r  r   r   r   )rN   rO   rP   r   r   
inner_sizer   )r5  r   rh   r   view_default_  s$   


r7  zDinput: jt, normalized_shape: any, weight: any?, bias: any?, eps: anyc           
      O   s   t | ||dd\}}|d}|d }| dk s#| t| 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   rH   r   r   r   r   )
rN   rO   rP   r   r   r   r8  outputmeanstdr   r   r   native_layer_norm_default  s   

 r<  zpgrad_out: jt, input: jt, normalized_shape: any, mean: any, rstd: any, weight: any?, bias: any?, output_mask: anyc           
      O   sp   t | ||dd\}}|d}|d}| |j|jfi |\}}}	|d u r+d ||	fS t|fi t|||	fS )NTr   grad_outr   r   )
rN   rO   rP   r   r   r=  r   d_inputd_gammad_betar   r   r   "native_layer_norm_backward_default  s   



rA  zself: jt, dim: any, index: anyc                 O   X   t | ||dd\}}|d}t| |d d|d< t| |jfi |fi t|S )NTr   r   r   selectr   r   r   r   r   r   r   r   r   r   r   
select_int  s   

"rE  z7self: jt, dim: any?, start: any?, end: any?, step: any?c                 O   rB  )NTr   r   r   slicerD  r   r   r   r   slice_tensor  s   

"rG  z{input: jt, weight: t, bias: t?, stride: any, padding: any, dilation: any, transposed: any, output_padding: any, groups: anyc                 O   r   r   r   r   r   r   r   convolution_default  s
   

"rH  z.self: jt, dim: any?, keepdim: any, dtype: any?c                 O   s^   t | ||dd\}}|d}t| |d d dg|d< t| |jfi |fi t|S )NTr   r   r   r   r:  rD  r   r   r   r   mean_dim  s   

"rI  c                 O   s   t | ||dd\}}|d}|D ]%}t|tstd| |d  kr*tdt||d js6tdqt|d  d |d	 d
|d	< t| dd |D fi |fi t	|d S )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   stackc                 S   r  r   r  r  r   r   r   r   
  r  z!stack_default.<locals>.<listcomp>)
r   r   r4   r   r   r   rl   rn   r   r   )rN   rO   rP   r   r   r  r=   r   r   r   stack_default  s0   



rK  zQweight: t, indices: jt, padding_idx: any?, scale_grad_by_freq: any?, sparse: any?c                 O   sL   t | ||dd\}}|d}|d}t| ||jfi |fi t|S )NTr   indicesr   r   )rN   rO   rP   r   r   rL  r   r   r   r   embedding_default  s   


rM  c                 O   s(   t | ||dd\}}|d}|j S r   )r   r   r   detachr   r   r   r   values_default   s
   


rO  zCvalues: t, offsets: t, dummy: jt_all, lengths: t?, ragged_idx: any?c           	      O   sH   t | ||dd\}}|d |d |d }}}|d }t||||dS )NTr   r   r   r   r  )r   r<   )r   r   )	rN   rO   rP   r   r   r   r   r   r  r   r   r    _nested_view_from_jagged_default3  s   

rP  c                 O   $   t | ||dd\}}|d}|jS r   )r   r   r   r   r   r   r   _nested_get_offsetsF  
   

rR  c                 O   rQ  r   )r   r   r;   r   r   r   r   _nested_get_lengthsP  rS  rT  c                 O   rQ  r   )r   r   r<   r   r   r   r   _nested_get_ragged_idxZ  rS  rU  z	self: anyc                 O   s   ddl m} | S )Nr   )_nt_view_dummy)$torch.nested._internal.nested_tensorrV  )rN   rO   rP   rV  r   r   r   _nested_get_jagged_dummye  s   rX  r   IMPLCPUCUDAMeta)TF)r   r   r   r5   torch.nested._internal.sdpar   r   r   typingtorch.nn.functionalnn
functionalr   torch.fx.operator_schemasr   r   ListAny__annotations__r	   Dictr   r   r)   strr[   rb   rl   rp   rz   r   register_jagged_funcOptionalCallabler   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   primr   r   rh   r   is_contiguousr   r   linearr   linear_backwardr   _to_copyr   
empty_like	ones_like
zeros_like
randn_likerN  _softmaxnative_dropoutr   native_dropout_backwardr   r   dim_intr   rF   r6   r   r   r   r   r  r   r   r  ro   r  r  r  r   r  matmulr"  expandr%  r  r&  wherer   r(  _pin_memoryr)  	is_pinnedr*  is_same_sizer+  r   dim_IntListr.  r1  r3  view_unsafe_viewr7  native_layer_normr<  native_layer_norm_backwardrA  rC  rE  rF  rG  convolutionrH  r:  rI  rJ  rK  	embeddingrM  r   _nested_get_valuesrO  _nested_view_from_jaggedrP  rR  rT  rU  rX  library_scoped_libraryimplr   r   r   r   <module>   s  

@
		<%






	













	






)
"













+
,



















	
	


$