a
    h                     @   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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$   ^/var/www/html/assistant/venv/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
    
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   sZ   t g d} t| dd\}}t |  }|t| }t|| t|t | | d S )N)y      ?      ?y       @      y             @T)r+   )r   r   r   r   r   absr   )r   r-   r.   Zexpected_sumexpZexpected_signr$   r$   r%   test_logsumexp_complex_signv   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_shape   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    rA   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    

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   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     $
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?r4   )r   r4   )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)   r/   r2   r<   r>   r?   rA   rC   rK   rO   r$   r$   r$   r%   <module>   s   2	