o
    0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acosarccosacosharccoshangleasinarcsinasinharcsinhatanarctanatanharctanhbitwise_notceilclampclipconj_physicalcoscoshdeg2raddigammaerferfcerfinvexpexp2expm1fixfloorfraclgammaloglog10log1plog2logiti0isnan
nan_to_numnegnegativepositivepowrad2deg
reciprocalroundrsqrtsigmoidsignsgnsignbitsinsincsinhsqrtsquaretantanhtruncc                 C   s   g | ]}|d  qS )_ ).0nrD   rD   S/var/www/vscode/kcb/lib/python3.10/site-packages/torch/masked/maskedtensor/unary.py
<listcomp>M   s    rH   >   r   r-   r:   r1   )atan2arctan2bitwise_left_shiftbitwise_right_shiftcopysignfloat_powerfmodfrexpgradientimagldexplerplogical_nothypotigammaigammacmvlgamma	nextafter	polygammareal	remaindertrue_divide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)_masked_maskxrD   rD   rG   <lambda>|       z_unary_helper.<locals>.<lambda>c                 S   r`   ra   )_masked_datarc   rD   rD   rG   re      rf   )size)len
ValueErrortorch	is_tensor	TypeErrorr   layout
sparse_coocoalescerh   indicesvaluessparse_coo_tensor
sparse_csrcrow_indicescol_indicessparse_csr_tensor_set_data_maskr   )fnargskwargsinplacea	mask_args_mask_kwargs	data_args_data_kwargssivresult_datacrowcolrD   rD   rG   _unary_helpero   sD   


r   c                       t tjj|   fdd}|S )Nc                        t  | |ddS )NFr|   r   rz   r{   ry   rD   rG   unary_fn      z_torch_unary.<locals>.unary_fngetattrrk   opsatenfn_namer   rD   r   rG   _torch_unary      r   c                    r   )Nc                     r   )NTr   r   r   r   rD   rG   r      r   z&_torch_inplace_unary.<locals>.unary_fnr   r   rD   r   rG   _torch_inplace_unary   r   r   c                 C       i | ]}t tjj|t|qS rD   )r   rk   r   r   r   rE   namerD   rD   rG   
<dictcomp>   s    r   c                 C   r   rD   )r   rk   r   r   r   r   rD   rD   rG   r      s    c                 C   s   | t v p| tv S ra   )NATIVE_UNARY_FNSNATIVE_INPLACE_UNARY_FNSr   rD   rD   rG   _is_native_unary   r   r   c                 O   s8   | t v rt|  |i |S | tv rt|  |i |S tS ra   )r   NATIVE_UNARY_MAPr   NATIVE_INPLACE_UNARY_MAPNotImplemented)ry   rz   r{   rD   rD   rG   _apply_native_unary   s
   r   )rk   corer   r   __all__UNARY_NAMESlistsetINPLACE_UNARY_NAMESUNARY_NAMES_UNSUPPORTEDr   r   r   r   r   keysr   r   r   r   rD   rD   rD   rG   <module>   s*   A,		