o
    Zh                     @   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    G/var/www/auris/lib/python3.10/site-packages/torch/_refs/_conversions.pyfn)   s   z#_make_conversion_method.<locals>.fn)torchZ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)Z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   Zfloat32Zfloat64Zfloat16_checkr   utilsZcorresponding_complex_dtyper   shapeZ	new_emptyr&   r'   r"   r#   )r"   r#   Zallowed_dtypesZresult_dtypeZcommon_shaperesultr   r$   r   r   M   s(   
r   absanglec                 C   s0   t | |}| t | |_| t | |_|S )N)r   r   cosr"   sinr#   )r,   r-   r+   r   r   r   r   o   s   r   )$r   Ztorch._prims_commonZ_prims_commonr)   Ztorch._decompr   r   Ztorch._prims_common.wrappersr   Ztorch._refsr   __all__strr   r!   r   r   Zuint8r   r	   r
   Z	complex32r   Zint8r   r   r   r   r   r   r   Z_opsopsZatenr   r   r   r   r   r   <module>   s6   

