o
    Ih                     @   s`  d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 g dZdede jfd	d
Zede jZede jZede jZede jZede jZede jZede jZede jZede jZede jZede jZede jZede jZee jj j!j"edddededefddZ"ee jj j!j#eddded edefd!d"Z#dS )#    N)register_decomposition)TensorLikeType)out_wrapper)_broadcast_shapes)bfloat16boolbytecdoublecfloatchalfchardoublefloathalfintlongshortcomplexpolarnamedtypec                    s,   t jfdtdt jdtf fdd}| |_|S )Nselfmemory_formatreturnc                    s   | j  |dS )N)r   )to)r   r   r    L/var/www/vscode/kcb/lib/python3.10/site-packages/torch/_refs/_conversions.pyfn)   s   z#_make_conversion_method.<locals>.fn)torchpreserve_formatr   r   __name__)r   r   r   r   r   r   _make_conversion_method(   s   r"   r   r   r   r	   r
   r   r   r   r   r   r   r   r   T)exact_dtyperealimagr   c                    s   t jt jt jf}t j|v o j|v  fdd t j jk fdd tj}tj	 j	}j
||jjd}|_ |_|S )Nc                      s   dj  d j  S )NzAExpected both inputs to be Half, Float or Double tensors but got z and r   r   r%   r$   r   r   <lambda>U   s
   zcomplex.<locals>.<lambda>c                      s   dj  d j  dS )NzExpected object of scalar type z but got scalar type z for second argumentr   r   r&   r   r   r'   \   s   
)r   layoutdevice)r   float32float64float16_checkr   utilscorresponding_complex_dtyper   shape	new_emptyr(   r)   r$   r%   )r$   r%   allowed_dtypesresult_dtypecommon_shaperesultr   r&   r   r   M   s(   
r   absanglec                 C   s0   t | |}| t | |_| t | |_|S )N)r   r   cosr$   sinr%   )r6   r7   r5   r   r   r   r   o   s   r   )$r   torch._prims_common_prims_commonr.   torch._decompr   r   torch._prims_common.wrappersr   torch._refsr   __all__strr   r"   r   r   uint8r   r	   r
   	complex32r   int8r   r   r   r   r   r   r   _opsopsatenr   r   r   r   r   r   <module>   s6   

