U
    9%e                     @   sp  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
 dddd	d
ddddddddddgZee jd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eeedddZ"ee jj j!j#eddeeed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tt jtd fdd}| |_|S )N)selfmemory_formatreturnc                    s   | j  |dS )N)r   )to)r   r   r    W/var/www/html/Darija-Ai-API/env/lib/python3.8/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!   T)Zexact_dtype)realimagr   c                    s   t jt jt jf}t j|ko& j|k 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>T   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   L   s(    
)absangler   c                 C   s0   t | |}| t | |_| t | |_|S )N)r   r   cosr"   sinr#   )r,   r-   r+   r   r   r   r   n   s    )$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_opsZopsZatenr   r   r   r   r   r   <module>   sR   
