o
    }oi                     @   s>   d dl Z d dlmZ d dlmZmZ G dd deZejZdS )    N)Function)
custom_bwd
custom_fwdc                   @   s4   e Zd Zeeejddd Zeedd Z	dS )
_trunc_exp)cast_inputsc                 C   s   |  | t|S )N)save_for_backwardtorchexp)ctxx r   m/home/ubuntu/.local/lib/python3.10/site-packages/nemo/collections/multimodal/modules/nerf/utils/activation.pyforward   s   

z_trunc_exp.forwardc                 C   s    | j d }|t|jdd S )Nr      )max)saved_tensorsr   r	   clamp)r
   gr   r   r   r   backward   s   
z_trunc_exp.backwardN)
__name__
__module____qualname__staticmethodr   r   floatr   r   r   r   r   r   r   r      s    
r   )	r   torch.autogradr   torch.cuda.ampr   r   r   apply	trunc_expr   r   r   r   <module>   s
   
