o
    *j                     @   s4   d dl Z d dlZddgZdd Zdd Zdd ZdS )    Nkl_divergence#discretized_gaussian_log_likelihoodc                 C   s6   dd| | t ||  | | d t |    S )N      ?g         )torchexp)Zmu1Zlogvar1Zmu2Zlogvar2 r   w/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/modelscope/models/multi_modal/videocomposer/ops/losses.pyr   
   s
   c                 C   s2   ddt tdtj | dt | d     S )zYA fast approximation of the cumulative distribution function of the standard normal.
    r         ?g       @gHm?   )r   tanhmathsqrtpipow)xr   r   r	   standard_normal_cdf   s   "r   c                 C   s   | j |j   kr|j ksJ  J | | }t| }t||d  }t||d  }t|jdd}td| jdd}|| }	t| dk |t| dk|t|	jdd}
|
j | j ksbJ |
S )Ngp?g-q=)minr
   g+g+?)shaper   r   r   logclampwhere)Zx0meanZ	log_scaleZcxZinv_stdvZcdf_plusZcdf_minZlog_cdf_plusZlog_one_minus_cdf_minZ	cdf_deltaZ	log_probsr   r   r	   r      s    ")r   r   __all__r   r   r   r   r   r   r	   <module>   s   