a
    he                     @   s   d dl Z ddlmZmZ g Zg dZdd eeeh d D Zg dZ	d	d
 Z
dd Zdd Zdd eD Zdd eD Zee Zee Zdd Zdd ZdS )    N   )_map_mt_args_kwargs_wrap_result)>absabsoluteacosZarccosacoshZarccoshangleasinZarcsinasinhZarcsinhatanZarctanatanhZarctanhZbitwise_notceilclampZclipZconj_physicalcoscoshZdeg2radZdigammaerferfcZerfinvexpZexp2expm1Zfixfloorfraclgammaloglog10log1plog2ZlogitZi0isnanZ
nan_to_numnegnegativepositivepowZrad2degZ
reciprocalroundZrsqrtZsigmoidsignZsgnsignbitsinZsincsinhsqrtZsquaretantanhtruncc                 C   s   g | ]}|d  qS )_ ).0nr,   r,   M/var/www/auris/lib/python3.9/site-packages/torch/masked/maskedtensor/unary.py
<listcomp>M   s   r0   >   r    r   r	   r$   )atan2Zarctan2Zbitwise_left_shiftZbitwise_right_shiftcopysignZfloat_powerfmodfrexpZgradientimagldexpZlerpZlogical_nothypotZigammaZigammacZmvlgamma	nextafterZ	polygammareal	remainderZtrue_divideZxlogyc                 C   sT  t |dkrtd|dd  D ]}t|r tdq t||dd \}}t||dd \}}|d jtjkr|d  |d< |d 	 }	|d 
 }
|d   |d< | | }tj|
||	d}nZ|d jtjkr|d  }|d  }|d  |d< | | }t|||}n| | }|rB|d ||d  |d S t||d S d S )	Nr   zsMaskedTensor unary ops require that len(kwargs) == 0. If you need support for this, please open an issue on Github.r   zAMaskedTensor unary ops do not support additional Tensor argumentsc                 S   s   | j S N)Z_masked_maskxr,   r,   r/   <lambda>|       z_unary_helper.<locals>.<lambda>c                 S   s   | j S r;   )Z_masked_datar<   r,   r,   r/   r>      r?   )size)len
ValueErrortorchZ	is_tensor	TypeErrorr   ZlayoutZ
sparse_cooZcoalescer@   indicesvaluesZsparse_coo_tensorZ
sparse_csrZcrow_indicesZcol_indicesZsparse_csr_tensorZ_set_data_maskr   )fnargskwargsinplaceaZ	mask_argsZ_mask_kwargsZ	data_argsZ_data_kwargssivZresult_dataZcrowcolr,   r,   r/   _unary_helpero   sB    


rP   c                    s   t tjj|   fdd}|S )Nc                     s   t  | |ddS )NFrJ   rP   rH   rI   rG   r,   r/   unary_fn   s    z_torch_unary.<locals>.unary_fngetattrrC   opsatenfn_namerU   r,   rT   r/   _torch_unary   s    r\   c                    s   t tjj|   fdd}|S )Nc                     s   t  | |ddS )NTrQ   rR   rS   rT   r,   r/   rU      s    z&_torch_inplace_unary.<locals>.unary_fnrV   rZ   r,   rT   r/   _torch_inplace_unary   s    r]   c                 C   s    i | ]}t tjj|t|qS r,   )rW   rC   rX   rY   r\   r-   namer,   r,   r/   
<dictcomp>   s   r`   c                 C   s    i | ]}t tjj|t|qS r,   )rW   rC   rX   rY   r]   r^   r,   r,   r/   r`      s   c                 C   s   | t v p| tv S r;   )NATIVE_UNARY_FNSNATIVE_INPLACE_UNARY_FNSrT   r,   r,   r/   _is_native_unary   s    rc   c                 O   s8   | t v rt|  |i |S | tv r4t|  |i |S tS r;   )ra   NATIVE_UNARY_MAPrb   NATIVE_INPLACE_UNARY_MAPNotImplemented)rG   rH   rI   r,   r,   r/   _apply_native_unary   s
    rg   )rC   corer   r   __all__ZUNARY_NAMESlistsetZINPLACE_UNARY_NAMESZUNARY_NAMES_UNSUPPORTEDrP   r\   r]   rd   re   keysra   rb   rc   rg   r,   r,   r,   r/   <module>   s(   A,		