ó
î&]\c           @` sÄ   d  d l  m Z m Z m Z 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   Z d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_almost_equalt   assert_equalt   assert_allcloset   assert_array_almost_equalt   assert_(   t	   logsumexpt   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 t d g d g g  t
 t d d g d t  j g g d d d  d  S(   NiČ   ič  g     @@g       @i'  t   dtypet   float64g     Ă@gWw'&lĄ7i@B t   axisi    i   g    _ Bgť˝×Ůß|Ű=g    _ Âi˙˙˙˙t   keepdimsiţ˙˙˙(   i˙˙˙˙iţ˙˙˙(   t   npt   aranget   logt   sumt   expR   R   t   fullt   arrayt   vstackR   R   t   inft   nant   True(   t   at   desiredt   bt   nt   xt   logxt   Xt   logX(    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   test_logsumexp
   sB    !"..%c          C` sż  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 d  | | j d d   t
 t  j t | d | d d
  | | j d d
   d  S(   NiČ   i    i˙˙˙˙R   ič  g333333ó?i   gWw'&lĄ7i  i   R   g333333@(   R   R   R   R   R   R   R   R   t   linspaceR   R   (   R   R   R   R   R   R   R    t   B(    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   test_logsumexp_b<   s&    %,!!c          C` sZ   d d d g }  d d d g } t  |  d | d t \ } } t | d  t | d  d  S(   Ni   i˙˙˙˙R   t   return_sign(   R   R   R   R   (   R   R   t   rt   s(    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   test_logsumexp_signU   s
    c          C` s   d d g }  d d g } t  |  d | d t \ } } t t j |   t t j |   t | d k   t | d  d  S(   Ni   i˙˙˙˙R   R%   i    (   R   R   R   R   t   isfinitet   isnanR   (   R   R   R&   R'   (    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   test_logsumexp_sign_zero^   s    c          C` s°   t  j d  }  t  j |   } t |  d d d | d t \ } } t | j | j  t | j d	  t |  d d
 d | d t \ } } t | j | j  t | j d  d  S(   Ni   i   i   i   R   R   R%   (   i   i   i   i   (   i   i   i   (   i   i   (   i   i   (   R   t   onest	   ones_likeR   R   R   t   shape(   R   R   R&   R'   (    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   test_logsumexp_sign_shapei   s    $$c          C` sr   t  j d  }  t  j |   } t |  d d d | } t | j d  t |  d d	 d | } t | j d
  d  S(   Ni   i   i   i   R   R   (   i   i   i   i   (   i   i   i   (   i   i   (   i   i   (   R   R,   R-   R   R   R.   (   R   R   R&   (    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   test_logsumexp_shapex   s    c          C` s5   d d g }  d d g } t  t |  d | d  d  S(   Ni   i'  i    R   (   R   R   (   R   R   (    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   test_logsumexp_b_zero   s    c          C` s2   t  j d  }  t  j d  } t |  d | d  S(	   Ni   i   i   i   i   R   (   i   i   i   i   (   i   i   i   (   R   t   zerosR,   R   (   R   R   (    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   test_logsumexp_b_shape   s    c          C` s9  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č  i    i   t   rtolgvIhÂ%<=g      ŕ?i   g*lI9üi ?g{Oś?gW-RÎ?gIłôňä?id   i   (   R   R	   R   R   t   eR   t   reshape(   R   t   expected(    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   test_softmax_fixtures   s    3.5	*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č  i    R   g      ŕ?R4   gvIhÂ%<=i   iç˙˙˙i   i2   iE  ií  iî  gŁ×Ů	Ń+9g.K|T}%m;gŐđ]¤7Ž=g\ţ˙˙˙ď?g        gpk´&gşTV6Ń?gź˘ŐőÔdç?i   (   i   i   (   R   R	   R   R   t   TR6   (   R   R7   t   x3d(    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   test_softmax_multi_axesŹ   s&    $($(	%'(   t
   __future__R    R   R   t   numpyR   t   numpy.testingR   R   R   R   R   t   scipy.specialR   R	   R!   R$   R(   R+   R/   R0   R1   R3   R8   R;   (    (    (    sA   lib/python2.7/site-packages/scipy/special/tests/test_logsumexp.pyt   <module>   s   (	2									