U
    +-e                   >   @   sP  d dl Z ddlmZmZ g Zdddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAg>ZdBdC eeed
d0d9d,h D ZdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZgZ	d[d\ Z
d]d^ Zd_d` Zdadb eD Zdcdb eD Zee Zee Zddde Zdfdg ZdS )h    N   )_map_mt_args_kwargs_wrap_resultabsabsoluteacosZarccosacoshZarccoshZ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negativeZpositivepowZrad2degZ
reciprocalroundZrsqrtZsigmoidsignZsgnZsignbitsinZsincsinhsqrtZsquaretantanhtruncc                 C   s   g | ]}|d  qS )_ ).0nr)   r)   `/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/torch/masked/maskedtensor/unary.py
<listcomp>K   s   r-   atan2Zarctan2Zbitwise_left_shiftZbitwise_right_shiftcopysignZfloat_powerfmodfrexpZgradientimagldexpZlerpZlogical_nothypotZigammaZigammacZmvlgammaZ	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>v       z_unary_helper.<locals>.<lambda>c                 S   s   | j S r7   )Z_masked_datar8   r)   r)   r,   r:   y   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_helperm   sB    

    rL   c                    s   t tjj|   fdd}|S )Nc                     s   t  | |ddS )NFrF   rL   rD   rE   rC   r)   r,   unary_fn   s    z_torch_unary.<locals>.unary_fngetattrr?   opsatenfn_namerQ   r)   rP   r,   _torch_unary   s    rX   c                    s   t tjj|   fdd}|S )Nc                     s   t  | |ddS )NTrM   rN   rO   rP   r)   r,   rQ      s    z&_torch_inplace_unary.<locals>.unary_fnrR   rV   r)   rP   r,   _torch_inplace_unary   s    rY   c                 C   s    i | ]}t tjj|t|qS r)   )rS   r?   rT   rU   rX   r*   namer)   r)   r,   
<dictcomp>   s     r\   c                 C   s    i | ]}t tjj|t|qS r)   )rS   r?   rT   rU   rY   rZ   r)   r)   r,   r\      s    c                 C   s   | t kp| tkS r7   )NATIVE_UNARY_FNSNATIVE_INPLACE_UNARY_FNSrP   r)   r)   r,   _is_native_unary   s    r_   c                 O   s0   | t krt|  ||S | tkr,t|  ||S tS r7   )r]   NATIVE_UNARY_MAPr^   NATIVE_INPLACE_UNARY_MAPNotImplemented)rC   rD   rE   r)   r)   r,   _apply_native_unary   s
    rc   )r?   corer   r   __all__ZUNARY_NAMESlistsetZINPLACE_UNARY_NAMESZUNARY_NAMES_UNSUPPORTEDrL   rX   rY   r`   ra   keysr]   r^   r_   rc   r)   r)   r)   r,   <module>   s   A(		