U
    ©Ê¹j²  ã                   @   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/bwave/python/venv/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   ï
