o
    i$                     @   s   d dl Zd dlmZmZmZmZmZ d dlm	Z	m
Z
 dd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)assert_almost_equalassert_equalassert_allcloseassert_array_almost_equalassert_)	logsumexpsoftmaxc                  C   s  t d} t t t | }tt| | ddg}dt d }tt|| d}t j|ddd}dt | }tt|| t d	gd
 }t |}t 	||g}t 	||g}t
t t||  t
t t|dd|jdd t
t t|dd|jdd ttt jt j ttt j t j  ttt jt j ttt j t j gt j  t
tddgdt j ggddddg t
tddgdt j ggddddgdgg t
tddgdt j ggddd d S )N     g     @@g       @'  Zfloat64)Zdtypeg     @Ww'&l7i@B r   axis   g    _Bg|=g    _T)r   Zkeepdims)r   )nparangelogsumexpr   r   fullarrayvstackr   r   infnan)adesiredbnxlogxXlogX r$   q/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/scipy/special/tests/test_logsumexp.pytest_logsumexp   sV   

  






r&   c                  C   s6  t d} t ddd}t t |t |  }tt| |d| ddg} ddg}dt d }tt| |d| t dgd	 }t d
dd	}t |}t 	||f}t 	||f}t 	||f}t
t t||d||   t
t t||dd|| jdd t
t t||d
d|| jd
d d S )Nr	   r   r   r   r
   g333333?g333333@r   i r   )r   r   r   )r   r   r   r   r   r   r   r   Zlinspacer   r   )r   r   r   r    r!   r"   r#   Br$   r$   r%   test_logsumexp_b:   s*   

 r)   c                  C   s:   g d} g d}t | |dd\}}t|d t|d d S )N)r   r   r   )r   r   r   Tr   return_signr   r   )r   r   r   r   r   rsr$   r$   r%   test_logsumexp_signS   s
   
r/   c                  C   s\   ddg} ddg}t | |dd\}}tt|  tt|  t|dk  t|d d S )Nr   r   Tr*   r   )r   r   r   isfiniteisnanr   r,   r$   r$   r%   test_logsumexp_sign_zero\   s   r2   c                  C   st   t d} t | }t| d|dd\}}t|j|j t|jd t| d|dd\}}t|j|j t|jd d S )Nr            r4   T)r   r   r+   r   r4   r6   r   r5   r   onesZ	ones_liker   r   shaper,   r$   r$   r%   test_logsumexp_sign_shapeg   s   

r<   c                  C   sL   t d} t | }t| d|d}t|jd t| d|d}t|jd d S )Nr3   r4   )r   r   r7   r8   r9   )r   r   r-   r$   r$   r%   test_logsumexp_shapev   s   

r=   c                  C   s&   ddg} ddg}t t| |dd d S )Nr   r   r   r'   )r   r   r   r   r$   r$   r%   test_logsumexp_b_zero   s   r?   c                  C   s$   t d} t d}t| |d d S )N)r6   r   r4   r   )r5   r      r'   )r   Zzerosr:   r   r>   r$   r$   r%   test_logsumexp_b_shape   s   

rA   c                  C   s   t tg dtg ddd t tddgtddgdd t tddgtdtjgdtj  dd td} tg d	}t t| |dd t t| d
 |dd t t| dd|dddd d S )N)r
   r   r   r   )r   r   r   r   vIh%<=Zrtolr         ?r   r6   )g*lI9i?g{O?gW-R?gI?d   r4   )r   r   r   r   er   reshape)r    expectedr$   r$   r%   test_softmax_fixtures   s    $

rI   c                  C   s   t tddgddggddtddgddggdd t tddgddggddtddgddggdd tg dg d	g} tg d
g dg}t t| dd|dd t t| jdd|jdd | ddd}t t|dd|ddddd d S )Nr
   r   r   rD   rB   rC   r   )ir      2   )r   iE  i  i  )g	+9g.K|T}%m;g]7=g\?)g        gpk&gTV6?gd?r4   )r   r4   )r   r   r   r   TrG   )r    rH   Zx3dr$   r$   r%   test_softmax_multi_axes   s$   


rM   )numpyr   Znumpy.testingr   r   r   r   r   Zscipy.specialr   r   r&   r)   r/   r2   r<   r=   r?   rA   rI   rM   r$   r$   r$   r%   <module>   s    2	