
    Χg	                        d dl mZ d dlmc mZ d dlmc mZ d dlmZ d dl	m
Z
 d dlmZmZmZ d dlmZ e
dd            Ze
dd            Ze
dd            ZdS )    )annotationsN)kernel_signature)with_native_function_and_index)BackendIndexNativeFunctionNativeFunctionsGroup)mapMaybefr   backend_indexr   return
str | Nonec                    t          | |          }|                    |           }|d S d|j        v rd S |j        rdnd}| d|                    |j                   dS )Nzlegacy::static	TORCH_API )name;)r   
get_kernelkernelexternaldecl)r
   r   sigmetadataprefixs        Z/var/www/html/ai-engine/env/lib/python3.11/site-packages/torchgen/dest/native_functions.pygen_unstructuredr      sy    
1m
,
,C''**HtX_$$t*3D<<388899<<<<    gr   	list[str]c                    t          j        |           }t          j        |           }|                    |           }|g S |j        rdnd}d| d|j         d| dd                    d |D                        d		gS )
N z
TORCH_API zstruct structured_z : public at::meta::structured_z {
void impl(z, c              3  >   K   | ]}|                                 V  d S N)r   ).0as     r   	<genexpr>z!gen_structured.<locals>.<genexpr>#   s*      00!QVVXX000000r   z);
};
)metar   
structuredimpl_argumentsr   r   r   join)r   r   	meta_nameout_argsr   r   s         r   gen_structuredr.      s    	!I(++H''**H	 );RR|F		 	#?	 	KT	 	9900x00000	 	 	 r   %NativeFunctionsGroup | NativeFunctionc                H                        |           }t          | t                    ra|-|j        r&j        rt          d          t          |           S t          t          fd| 	                                                    S t          |           }|g n|gS )Nz>Structured external backend functions are not implemented yet.c                $    t          |           S r$   )r   )r
   r   s    r   <lambda>z5compute_native_function_declaration.<locals>.<lambda>;   s    #3A}#E#E r   )r   
isinstancer   r)   r   AssertionErrorr.   listr	   	functionsr   )r   r   r   xs    `  r   #compute_native_function_declarationr8   +   s     ''**H!)** (H$7% 8$T   &a777EEEEq{{}}UU   Q..YrrQC'r   )r
   r   r   r   r   r   )r   r   r   r   r   r   )r   r/   r   r   r   r   )
__future__r   torchgen.api.metaapir(   torchgen.api.structuredr)   torchgen.api.typesr   torchgen.contextr   torchgen.modelr   r   r   torchgen.utilsr	   r   r.   r8    r   r   <module>rB      s   " " " " " "                   , , , , , , , , , / / / / / / ; ; ; ; ; ; M M M M M M M M M M # # # # # #  	= 	= 	=  	=      $  ( ( (  ( ( (r   