U
    IºcP  ã                Z   @   sÐ  U d dl Z d dlZd dlZd dlZd dlm  mZ ddlmZm	Z	m
Z
mZmZ d dlmZ d dlmZmZ daeeeef  ed< eejjejjejjejjejjejjfZe	dfedfed	fe
d
fedfedfedfejdfe j dfe j!dfe j"dfe j#dfe j$dfe j%dfe j&dfe j'dfe j(dfe j)dfe j*dfe j+dfe j,dfe j-dfe j.dfe j/dfe j0dfe j1dfe j2d fe j3d!fe j4d"fe j5d#fe j6d$fe j7d%fe j8d&fe j9d'fe j:d(fe j;d)fe j0dfe j1dfe j<d*fe j=d+fe j>d,fe j?d-fe j@d.fe jAd/fe jBd0fe jCd1fej/dfejDd2fejAd/fejEd3fejFd4fej*dfej+dfej.dfej$dfej:d(fej;d)fej9d'fej6d$fej5d#fej7d%fej3d!fej2d fej4d"fej0dfej<d*fej1dfe jGd5fejHd6fejIjJd7fejIjKd8fejjLd9fejMjNjOd:fejMjNjPd;fejMjQjRd<fejMjQjSd=fejMjQjTd>fejMjQjUd?fejjVd@fejWdAfejXjYdBfejXjZdCfejXj[dDfejXj\dEfejXj]dFfejXj^dGfejXj_dHfejXj`dIfejXjadJfgYZbdKdL„ Zcecƒ ZddMdN„ ZedOdP„ ZfdQdR„ ZgdSdT„ ZhdS )Ué    Né   )Ú_singleÚ_pairÚ_tripleÚ
_quadrupleÚ_list_with_default)ÚOrderedDict)ÚDictÚOptionalÚ_builtin_tablezaten::_pairzaten::_quadruplezaten::_singlezaten::_triplezaten::list_with_defaultz
aten::dictzaten::cudnn_is_acceptablez
aten::ceilzaten::copysignz	aten::erfz
aten::erfcz	aten::expzaten::expm1z
aten::fabszaten::floorzaten::gammazaten::lgammaz	aten::logzaten::log10zaten::log1pz	aten::powz
aten::sqrtzaten::isnanzaten::asinhzaten::atanhz
aten::coshz
aten::sinhz
aten::tanhz
aten::acosz
aten::asinz
aten::atanzaten::atan2z	aten::cosz	aten::sinz	aten::tanzaten::acoshz
aten::fmodz
aten::modfzaten::factorialzaten::frexpzaten::isinfzaten::degreeszaten::radiansúaten::isfinitezaten::anglezaten::polarzaten::ldexpzaten::_assertz
aten::gradzaten::backwardzaten::_infer_sizez aten::_no_grad_embedding_renorm_zaten::_assert_int_or_pairzaten::_no_grad_fill_zaten::_no_grad_normal_zaten::_no_grad_uniform_zaten::_no_grad_zero_zaten::_get_tracing_statez
aten::warnz
aten::stftzaten::istftzaten::cdistz
aten::normzaten::unique_dimzaten::unique_consecutivezaten::nuclear_normzaten::frobenius_normzaten::tensordotc                  C   s&   ddddddddg} t d	d
„ | D ƒƒS )NÚstftÚistftZluÚcdistÚnormÚuniqueÚunique_consecutiveÚ	tensordotc                 s   s   | ]}t tj|ƒV  qd S ©N)ÚgetattrÚtorchÚ
functional)Ú.0Úname© r   ú7/tmp/pip-unpacked-wheel-gikjz4vx/torch/jit/_builtins.pyÚ	<genexpr>x   s     z7_gen_torch_functional_registered_ops.<locals>.<genexpr>)Úset)Úopsr   r   r   Ú$_gen_torch_functional_registered_opsr   s    r   c                 C   s   | t kS r   )Ú_functional_registered_ops©Úfnr   r   r   Ú_is_special_functional_bound_op|   s    r#   c                  C   s²   t d k	rt S i a dd„ } tD ]}| |ƒ qt tjdf¡ t tjdf¡ t tjdf¡ dd lm	  m
} | ¡ r”t |jdf¡ t |jdf¡ tD ]\}}|t t|ƒ< q˜t S )	Nc                 S   sR   t | ƒD ]D}t| |ƒ}t|ƒrt|ƒs|tjk	r|tjk	rt |d| f¡ qd S )Nzaten::)	Údirr   Úcallabler#   r   Zno_gradZautocastÚ_builtin_opsÚappend)Úmodr   Úvr   r   r   Úregister_all†   s    
$z(_get_builtin_table.<locals>.register_allz	aten::gcdr   zaten::mathremainderr   zaten::get_gradientszaten::dist_backward)r   Ú_modules_containing_builtinsr&   r'   ÚmathÚgcdÚisfiniteÚ	remainderZtorch.distributed.autogradZdistributedÚautogradZis_availableZget_gradientsÚbackwardÚid)r*   r(   Zdist_autogradÚbuiltinZaten_opr   r   r   Ú_get_builtin_table€   s     
r4   c                 C   s   |t ƒ t| ƒ< d S r   )r4   r2   )r"   Úopr   r   r   Ú_register_builtinž   s    r6   c                 C   s   t ƒ  t| ƒ¡S r   )r4   Úgetr2   r!   r   r   r   Ú_find_builtin¢   s    r8   )ir,   ZcmathÚwarningsr   Ztorch.backends.cudnnÚbackendsZcudnnZnn.modules.utilsr   r   r   r   r   Úcollectionsr   Útypingr	   r
   r   ÚintÚstrÚ__annotations__Z_CZ_nnZ_fftZ_linalgZ_nestedZ_sparseÚ_specialr+   ÚdictZis_acceptableÚceilÚcopysignÚerfÚerfcÚexpÚexpm1ÚfabsÚfloorÚgammaÚlgammaÚlogÚlog10Úlog1pÚpowÚsqrtÚisnanÚasinhÚatanhÚcoshÚsinhÚtanhÚacosÚasinÚatanÚatan2ÚcosÚsinÚtanÚacoshÚfmodÚmodfÚ	factorialÚfrexpÚisinfÚdegreesÚradiansr.   ÚphaseZrectÚldexpZ_assertr0   Zgradr1   Z_infer_sizeÚnnr   Z_no_grad_embedding_renorm_Zassert_int_or_pairÚinitZ_no_grad_fill_Z_no_grad_normal_Z_no_grad_uniform_Z_no_grad_zero_Z_get_tracing_stateÚwarnZ_VFr   r   r   r   Z
unique_dimr   Znuclear_normZfrobenius_normr   r&   r   r    r#   r4   r6   r8   r   r   r   r   Ú<module>   sÔ    *












¦a