3
Od$                 @   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 jd} t jt jt j| }tt| | ddg}dt jd }tt|| d}t j|ddd}dt j| }tt|| t jd	gd
 }t j|}t j	||g}t j	||g}t
t jt||j  t
t jt|dd|jdd t
t j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   i  g     @@g       @i'  Zfloat64)Zdtypeg     @gWw'&l7i@B r   )axis   g    _Bg|=T)r
   Zkeepdims   g    _g    _g    _r   g    _g    _r   )r   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/html/virt/lib64/python3.6/site-packages/scipy/special/tests/test_logsumexp.pytest_logsumexp   sB    

  



r#   c              C   s6  t jd} t jddd}t jt j|t j|  }tt| |d| ddg} ddg}dt jd }tt| |d| t jdgd	 }t jddd	}t j|}t j	||f}t j	||f}t j	||f}t
t jt||d|| j  t
t jt||dd
|| jdd t
t jt||dd
|| jdd d S )Nr	   r   r   )r   i  g333333?r   gWw'&l7i )r   r
   )r
   r   g333333@)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>   dddg} dddg}t | |dd\}}t|d t|d d S )Nr   T)r   return_signr   r   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j|  ttj|  t|dk  t|d d S )Nr   T)r   r&   r   r   )r   r   r   isfiniteisnanr   )r   r   r'   r(   r!   r!   r"   test_logsumexp_sign_zero\   s    r,   c              C   st   t jd} t j| }t| d|dd\}}t|j|j t|jd t| d	|dd\}}t|j|j t|jd
 d S )Nr   r         T)r
   r   r&   )r   r   r-   r.   )r   r   r.   )r   r-   )r   r-   )r   ones	ones_liker   r   shape)r   r   r'   r(   r!   r!   r"   test_logsumexp_sign_shapeg   s    

r2   c              C   sL   t jd} t j| }t| d|d}t|jd t| d|d}t|jd	 d S )
Nr   r   r-   r.   )r
   r   )r   r   r-   r.   )r   r   r.   )r   r-   )r   r-   )r   r/   r0   r   r   r1   )r   r   r'   r!   r!   r"   test_logsumexp_shapev   s    

r3   c              C   s&   ddg} ddg}t t| |dd d S )Nr   i'  r   )r   )r   r   )r   r   r!   r!   r"   test_logsumexp_b_zero   s    r4   c              C   s$   t jd} t jd}t| |d d S )	Nr.   r   r   r-      )r   )r.   r   r   r   )r-   r   r5   )r   Zzerosr/   r   )r   r   r!   r!   r"   test_logsumexp_b_shape   s    

r6   c              C   s   t tddddgtjddddgdd t tddgtjddgdd t tddgtjdtjgdtj  dd tjd} tjdd	d
dg}t t| |dd t t| d |dd t t| jdd|jdddd d S )Ni  r   r   gvIh%<=)rtolg      ?r.   g*lI9i?g{O?gW-R?gI?d   r   )r   r   r   r   er   reshape)r   expectedr!   r!   r"   test_softmax_fixtures   s      $
r<   c              C   s  t tddgddggddtjddgddggdd t tddgddggddtjddgddggdd tjdddd	gdd
ddgg} tjddddgddddgg}t t| dd|dd t t| jdd|jdd | jddd}t t|dd|jddddd d S )Ni  r   )r
   g      ?gvIh%<=)r7   r      2   iE  i  i  g	+9g.K|T}%m;g]7=g\?g        gpk&gTV6?gd?r   i)r   r   )r   r   r   r   Tr:   )r   r;   Zx3dr!   r!   r"   test_softmax_multi_axes   s&    
r@   )Znumpyr   Znumpy.testingr   r   r   r   r   Zscipy.specialr   r   r#   r%   r)   r,   r2   r3   r4   r6   r<   r@   r!   r!   r!   r"   <module>   s   2	