U
    Kc                  	   @   s  d dl Z d dlmZ d dlZd dlmZ d dlmZ	 d dl
mZ d dlmZ d dlmZ d dlmZmZ d dlmZmZ d dl
mZmZ dd	d
ddddddg	ZeejejjjdeedddZeejejjjdeeddd	Zeejejjjdeeddd
Z eejejjj!deedddZ"eejejjj#deedddZ$eejjj%e ede	jjdd!eee& edddZ%eejjj'e ede	jjdee(edddZ)eejejjj*deedddZ+eej,e	jjejjj-d Z,dS )"    N)Optional)Tensor)register_decomposition)ELEMENTWISE_TYPE_PROMOTION_KINDTensorLikeType)"elementwise_type_promotion_wrapperout_wrapper)"_make_elementwise_binary_reference!_make_elementwise_unary_reference	bessel_j0	bessel_j1i0ei1i1elogitmultigammalnspherical_bessel_j0zeta)aten_op)areturnc                 C   s
   t | S N)primsr   r    r   @/tmp/pip-unpacked-wheel-gikjz4vx/torch/_refs/special/__init__.pyr       s    c                 C   s
   t | S r   )r   r   r   r   r   r   r   (   s    c                 C   s
   t | S r   )r   Z
bessel_i0er   r   r   r   r   0   s    c                 C   s
   t | S r   )r   Z	bessel_i1r   r   r   r   r   7   s    c                 C   s
   t | S r   )r   Z
bessel_i1er   r   r   r   r   >   s    )self)Ztype_promoting_argstype_promotion_kind)r   epsr   c              	   C   s@   |d krd}|}d| }t | ||} t t | t d| S )Ng         )torchclamplogZtrue_dividesub)r   r   lohir   r   r   r   E   s    r   )r   pr   c                 C   s^   d| |d  t t j }dtjd| dd| j| jd }tjt| 	d| dd| S )Ng      ?r   g      ?)startendstepdtypedevice)Zdim)
mathr"   pir    Zaranger*   r+   sumlgammaZ	unsqueeze)r   r&   cbr   r   r   r   T   s     c                 C   s
   t | S r   )r   r   r   r   r   r   r   `   s    )r   r   )N).r-   typingr   r    Ztorch._primsZ_primsr   Ztorch._prims_commonZ_prims_commonutilsZtorch._refsZ_refsrefsr   Ztorch._decompr   r   r   Ztorch._prims_common.wrappersr   r   r	   r
   __all__ZINT_TO_FLOATopsZatenZspecial_bessel_j0r   Zspecial_bessel_j1r   Zspecial_i0er   Z
special_i1r   Zspecial_i1er   r   floatZmvlgammaintr   Zspecial_spherical_bessel_j0r   r   Zspecial_zetar   r   r   r   <module>   s      	