U
    •Ê¹j   ã                >   @   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/bwave/python/venv/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þé(		ÿþ