a
    Qe$                     @   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       @'  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%   V/var/www/sunrise/env/lib/python3.9/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
    
r0   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    r3   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            r5   T)r   r   r,   r   r5   r7   r   r6   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 )Nr4   r5   )r   r   r8   r9   r:   )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)r7   r   r5   r   )r6   r      r(   )r   zerosr;   r   r?   r%   r%   r&   test_logsumexp_b_shape   s    

rC   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   r7   )g*lI9i?g{O?gW-R?gI?d   r5   )r   r   r   r   er   reshape)r!   expectedr%   r%   r&   test_softmax_fixtures   s     $
rK   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   rF   rD   rE   r   )ir      2   )r   iE  i  i  )g	+9g.K|T}%m;g]7=g\?)g        gpk&gTV6?gd?r5   )r   r5   )r   r   r   r   TrI   )r!   rJ   Zx3dr%   r%   r&   test_softmax_multi_axes   s$    

rO   )numpyr   Znumpy.testingr   r   r   r   r   Zscipy.specialr   r   r'   r*   r0   r3   r=   r>   r@   rC   rK   rO   r%   r%   r%   r&   <module>   s   2	