o
    wZhe                     @   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,   N/var/www/auris/lib/python3.10/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   sL  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rc|d  |d< |d 	 }	|d 
 }
|d   |d< | | }tj|
||	d}n,|d jtjkr|d  }|d  }|d  |d< | | }t|||}n| | }|r|d ||d  |d S t||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      | j S N)Z_masked_maskxr,   r,   r/   <lambda>|       z_unary_helper.<locals>.<lambda>c                 S   r;   r<   )Z_masked_datar=   r,   r,   r/   r?      r@   )size)len
ValueErrortorchZ	is_tensor	TypeErrorr   ZlayoutZ
sparse_cooZcoalescerA   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   sD   


rQ   c                       t tjj|   fdd}|S )Nc                        t  | |ddS )NFrK   rQ   rI   rJ   rH   r,   r/   unary_fn      z_torch_unary.<locals>.unary_fngetattrrD   opsatenfn_namerX   r,   rW   r/   _torch_unary      r`   c                    rR   )Nc                     rS   )NTrT   rU   rV   rW   r,   r/   rX      rY   z&_torch_inplace_unary.<locals>.unary_fnrZ   r^   r,   rW   r/   _torch_inplace_unary   ra   rb   c                 C       i | ]}t tjj|t|qS r,   )r[   rD   r\   r]   r`   r-   namer,   r,   r/   
<dictcomp>   s    rf   c                 C   rc   r,   )r[   rD   r\   r]   rb   rd   r,   r,   r/   rf      s    c                 C   s   | t v p| tv S r<   )NATIVE_UNARY_FNSNATIVE_INPLACE_UNARY_FNSrW   r,   r,   r/   _is_native_unary   rY   ri   c                 O   s8   | t v rt|  |i |S | tv rt|  |i |S tS r<   )rg   NATIVE_UNARY_MAPrh   NATIVE_INPLACE_UNARY_MAPNotImplemented)rH   rI   rJ   r,   r,   r/   _apply_native_unary   s
   rm   )rD   corer   r   __all__ZUNARY_NAMESlistsetZINPLACE_UNARY_NAMESZUNARY_NAMES_UNSUPPORTEDrQ   r`   rb   rj   rk   keysrg   rh   ri   rm   r,   r,   r,   r/   <module>   s*   A,		