ó
î&]\c           @` sÕ  d  d l  m Z m Z m Z d Z d  d l m Z m Z m Z d  d l	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z d  d l Z d  d l m Z m Z m Z m Z m Z m Z m Z m  Z  d  d l! m" Z" d d d	 „ Z$ d d d
 „ Z% d d d „ Z& d „  Z' d „  Z( d d „ Z) d e* f d „  ƒ  YZ+ d e* f d „  ƒ  YZ, d e* f d „  ƒ  YZ- d e* f d „  ƒ  YZ. d e* f d „  ƒ  YZ/ d e* f d „  ƒ  YZ0 d e* f d „  ƒ  YZ1 d S(   i    (   t   divisiont   print_functiont   absolute_importsÝ   
Build fftpack:
  python setup_fftpack.py build
Run tests if scipy is installed:
  python -c 'import scipy;scipy.fftpack.test(<level>)'
Run tests if fftpack is not installed:
  python tests/test_pseudo_diffs.py [<level>]
(   t   assert_equalt   assert_almost_equalt   assert_array_almost_equal(   t   difft   fftt   ifftt   tilbertt   itilbertt   hilbertt   ihilbertt   shiftt   fftfreqt   cs_difft   sc_difft   ss_difft   cc_diffN(   t   aranget   sint   cost   pit   expt   tanht   sumt   sign(   t   randomi   c         C` s¯   t  |  ƒ } t | ƒ } | d  k r1 d t } n  t | ƒ d t | | } | d k  rt d | | } d | d <n
 | | } | d k rž d | d | d +n  t | | ƒ j S(   Ni   y               @i    i   g        iÐ  iú   (   R   t   lent   NoneR   R   R   t   real(   t   xt   kt   periodt   fxt   nt   w(    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   direct_diff   s    
c         C` sƒ   t  |  ƒ } t | ƒ } | d  k r1 d t } n  t | ƒ | d t | | } d | d <d t | ƒ } d | d <t | | ƒ S(   Ni   i   i    y              ð?y                (   R   R   R   R   R   R   R   (   R   t   hR!   R"   R#   R$   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   direct_tilbert)   s     

c         C` so   t  |  ƒ } t | ƒ } | d  k r1 d t } n  t | ƒ | d t | | } d t | ƒ } t | | ƒ S(   Ni   y              ð¿(   R   R   R   R   R   R   R   (   R   R&   R!   R"   R#   R$   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   direct_itilbert5   s     c         C` sF   t  |  ƒ } t | ƒ } t | ƒ | } d t | ƒ } t | | ƒ S(   Ny              ð?(   R   R   R   R   R   (   R   R"   R#   R$   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   direct_hilbert?   s
    c         C` s   t  |  ƒ S(   N(   R)   (   R   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   direct_ihilbertG   s    c         C` sl   t  |  ƒ } | d  k r/ t | ƒ d | } n t | ƒ d t | | } t t |  ƒ t | | ƒ ƒ j S(   Ny              ð?y               @(   R   R   R   R   R   R   R   R   (   R   t   aR!   R#   R    (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   direct_shiftK   s
    t   TestDiffc           B` sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C` s-  x&d d d d d g D]} t  | ƒ d t | } t t t | ƒ ƒ t t | ƒ ƒ ƒ t t t | ƒ d ƒ t t | ƒ d ƒ ƒ t t t | ƒ d ƒ t t | ƒ d ƒ ƒ t t t | ƒ d ƒ t t | ƒ d ƒ ƒ t t t | ƒ d	 ƒ t t | ƒ d	 ƒ ƒ t t t d | ƒ d ƒ t t d | ƒ d ƒ ƒ t t t d | ƒ d ƒ t t d | ƒ d ƒ ƒ t t t | ƒ ƒ t t | ƒ ƒ ƒ t t t | ƒ d ƒ t t | ƒ d ƒ ƒ t t t | ƒ d ƒ t t | ƒ d ƒ ƒ t t t | ƒ d ƒ t t | ƒ d ƒ ƒ t t t d | ƒ ƒ t t d | ƒ ƒ ƒ t t t | | d
 ƒ ƒ t t | | d
 ƒ ƒ ƒ t t t | | d
 ƒ ƒ t t | | d
 ƒ ƒ ƒ xz t d	 ƒ D]l } t t t d | ƒ | ƒ t t d | ƒ | ƒ ƒ t t t d | ƒ | ƒ t t d | ƒ | ƒ ƒ qµWq Wd  S(   Ni   i   i@   i   i    i   i   i   i   i   (   R   R   R   R   R   R%   R   t   range(   t   selfR#   R   R    (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_definitionV   s&    %++++33%+++-553c         C` s³   x¬ d d g D]ž } t  | ƒ t | ƒ } t t t d t | ƒ d d ƒd t t d t | ƒ ƒ t t t d t | ƒ d d d ƒd t d t d t | ƒ ƒ q Wd  S(   Ni   i@   i   R!   i   i   (   R   t   floatR   R   R   R   R   (   R/   R#   R   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_periodk   s     #c         C` s  xd d d g D]} t  | ƒ d t | } t t t | ƒ ƒ t | ƒ ƒ t t t | ƒ ƒ t | ƒ ƒ t t t | ƒ d ƒ t | ƒ ƒ t t t | ƒ d ƒ t | ƒ ƒ t t t d | ƒ ƒ d t d | ƒ ƒ t t t t | ƒ ƒ ƒ t | ƒ t t | ƒ ƒ ƒ q Wd  S(   Ni    i@   iM   i   i   (   R   R   R   R   R   R   (   R/   R#   R   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_sins   s     #"+c      
   C` s»  x´d d d d d d d d d	 d
 g
 d  D]Š} t  | ƒ d t | } t | ƒ t d | ƒ t t d | ƒ ƒ } t | ƒ t d | ƒ d t | ƒ t d | ƒ d t d | ƒ t t d | ƒ ƒ } d t | ƒ t d | ƒ d t | ƒ t d | ƒ d t d | ƒ t t d | ƒ ƒ d t d | ƒ d t t d | ƒ ƒ } t | ƒ } t | | ƒ t t | ƒ | ƒ t t | d ƒ | ƒ t t | d ƒ | ƒ q) Wd  S(   Ni@   iM   id   i€   i   i   i   i   i   i    i   i   i   i   iïÿÿÿi   i	   iÿÿÿÿ(   R   R   R   R   R   R   R   (   R/   R#   R   t   ft   dft   ddft   d1(    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt	   test_expr}   s    /.\Šc         C` s™  x’d d g D]„} t  | ƒ d t | } t | ƒ t d | ƒ t t d | ƒ ƒ } t | ƒ t d | ƒ d t | ƒ t d | ƒ d t d | ƒ t t d | ƒ ƒ } d t | ƒ t d | ƒ d t | ƒ t d | ƒ d t d | ƒ t t d | ƒ ƒ d t d | ƒ d t t d | ƒ ƒ } t t | ƒ | ƒ t t | ƒ | ƒ t t | d	 ƒ | ƒ t t | d ƒ | ƒ q Wd  S(
   Ni   i   i   i   i   iïÿÿÿi   i	   iÿÿÿÿ(   R   R   R   R   R   R   R   (   R/   R#   R   R4   R5   R6   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_expr_largeŠ   s    .\Šc         C` s¸   d } t  | ƒ d t | } t t t | ƒ d ƒ t | ƒ ƒ t t t | ƒ d ƒ t | ƒ ƒ t t t | ƒ d ƒ t | ƒ ƒ t t d t d | ƒ d ƒ t d | ƒ ƒ d  S(   Ni@   i   iÿÿÿÿiþÿÿÿiüÿÿÿ(   R   R   R   R   R   R   (   R/   R#   R   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_int–   s    ##"c         C` sá   xÚ d d d d g D]Æ } x½ d d d d d	 g D]¦ } t  | f ƒ } t | d
 d ƒ| } | | } t t | d ƒ d ƒ } t t | d
 d ƒd ƒ t t t | | ƒ | ƒ | ƒ t t t | | ƒ | ƒ | ƒ q/ Wq Wd  S(   Ni    i   i   i   i<   i    i@   i8   i7   t   axisi   iÿÿÿÿg        (   R   R   R   R   R   (   R/   R    R#   R4   t   af(    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_random_evenž   s    
 c         C` sÌ   xÅ d d d d d d d g D]¨ } xŸ d d	 d
 g D]Ž } t  | f ƒ } t | d d ƒ| } | | } t t | d d ƒd ƒ t t t | | ƒ | ƒ | ƒ t t t | | ƒ | ƒ | ƒ q2 Wq Wd  S(   Ni    i   i   i   i   i   i   i!   iA   i7   R;   g        (   R   R   R   R   R   (   R/   R    R#   R4   R<   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_random_oddª   s    "
 c         C` sê   xã d d d d d d d g D]Æ } x½ d d	 d
 d d g D]¦ } t  | f ƒ } t | d d ƒ| } | | } t t | d ƒ d ƒ } t t | d d ƒd ƒ t t t | | ƒ | ƒ | ƒ t t t | | ƒ | ƒ | ƒ q8 Wq Wd  S(   Ni    i   i   i   i   i   i   i    i!   i@   i8   i7   R;   iÿÿÿÿg        (   R   R   R   R   R   (   R/   R    R#   R4   R<   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_zero_nyquist´   s    "
 (   t   __name__t
   __module__R0   R2   R3   R8   R9   R:   R=   R>   R?   (    (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyR-   T   s   			
					
t   TestTilbertc           B` s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C` sî   xç d d d d d g D]Ð } xÇ d d d d	 g D]³ } t  | ƒ d
 t | } t t | ƒ | ƒ } t t | ƒ | ƒ } t | | ƒ t t t | ƒ | ƒ t t | ƒ | ƒ ƒ t t t d
 | ƒ | ƒ t t d
 | ƒ | ƒ ƒ q/ Wq Wd  S(   Ngš™™™™™¹?g      à?i   g      @i
   i   i   i@   i   i   (   R   R   R	   R   R'   R   (   R/   R&   R#   R   t   yt   y1(    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyR0   Ã   s    c         C` s¥   xž d d d d d g D]‡ } x~ d d d g D]m } t  | f ƒ } t | d	 d
 ƒ| } | | } t t | d	 d
 ƒd ƒ t t t | | ƒ | ƒ | ƒ q, Wq Wd  S(   Ngš™™™™™¹?g      à?i   g      @i
   i    i@   i8   R;   i    g        (   R   R   R   R   R'   R(   (   R/   R&   R#   R4   R<   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyR=   Ï   s    
c         C` sÄ   x½ d d d d d g D]¦ } x d d d g D]Œ } t  | f ƒ } t | d	 d
 ƒ| } | | } t t | d	 d
 ƒd ƒ t t t | | ƒ | ƒ | ƒ t t t | | ƒ | ƒ | ƒ q, Wq Wd  S(   Ngš™™™™™¹?g      à?i   g      @i
   i!   iA   i7   R;   i    g        (   R   R   R   R   R
   R	   (   R/   R&   R#   R4   R<   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyR>   Ø   s    
(   R@   RA   R0   R=   R>   (    (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyRB   Á   s   			t   TestITilbertc           B` s   e  Z d  „  Z RS(   c         C` sî   xç d d d d d g D]Ð } xÇ d d d d	 g D]³ } t  | ƒ d
 t | } t t | ƒ | ƒ } t t | ƒ | ƒ } t | | ƒ t t t | ƒ | ƒ t t | ƒ | ƒ ƒ t t t d
 | ƒ | ƒ t t d
 | ƒ | ƒ ƒ q/ Wq Wd  S(   Ngš™™™™™¹?g      à?i   g      @i
   i   i   i@   i   i   (   R   R   R
   R   R(   R   (   R/   R&   R#   R   RC   RD   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyR0   å   s    (   R@   RA   R0   (    (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyRE   ã   s   t   TestHilbertc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C` s—   x d d d d g D]| } t  | ƒ d t | } t t | ƒ ƒ } t t | ƒ ƒ } t | | ƒ t t t d | ƒ ƒ t t d | ƒ ƒ ƒ q Wd  S(   Ni   i   i@   i   i   (   R   R   R   R   R)   R   (   R/   R#   R   RC   RD   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyR0   ô   s    c         C` s¡   xš d d d d g D]† } t  | ƒ d t | } t | ƒ t d | ƒ t | ƒ } t | ƒ } t | ƒ } t | | ƒ t | d d ƒ} t | | ƒ q Wd  S(   Ni   i   i@   i   i   R&   i
   (   R   R   R   R   R   R)   R   R	   (   R/   R#   R   R4   RC   RD   t   y2(    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_tilbert_relationý   s    $c         C` s˜   x‘ d d d g D]€ } t  | f ƒ } t | d d ƒ| } | | } t t | d d ƒd ƒ t t t | ƒ ƒ | ƒ t t t | ƒ ƒ | ƒ q Wd  S(   Ni!   iA   i7   R;   i    g        (   R   R   R   R   R   R   (   R/   R#   R4   R<   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyR>     s    
c         C` s°   x© d d d g D]˜ } t  | f ƒ } t | d d ƒ| } | | } t t | d ƒ d ƒ } t t | d d ƒd ƒ t t t | ƒ ƒ | ƒ t t t | ƒ ƒ | ƒ q Wd  S(	   Ni    i@   i8   R;   i    i   iÿÿÿÿg        (	   R   R   R   R   R   R)   R*   R   R   (   R/   R#   R4   R<   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyR=     s    
(   R@   RA   R0   RH   R>   R=   (    (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyRF   ò   s   			
		t   TestIHilbertc           B` s   e  Z d  „  Z d „  Z RS(   c         C` s—   x d d d d g D]| } t  | ƒ d t | } t t | ƒ ƒ } t t | ƒ ƒ } t | | ƒ t t t d | ƒ ƒ t t d | ƒ ƒ ƒ q Wd  S(   Ni   i   i@   i   i   (   R   R   R   R   R*   R   (   R/   R#   R   RC   RD   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyR0     s    c         C` s¡   xš d d d d g D]† } t  | ƒ d t | } t | ƒ t d | ƒ t | ƒ } t | ƒ } t | ƒ } t | | ƒ t | d d ƒ} t | | ƒ q Wd  S(   Ni   i   i@   i   i   R&   i
   (   R   R   R   R   R   R*   R   R
   (   R/   R#   R   R4   RC   RD   RG   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_itilbert_relation'  s    $(   R@   RA   R0   RJ   (    (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyRI     s   		t	   TestShiftc           B` s   e  Z d  „  Z RS(   c         C` s·  x°d d d d d d d g D]“} t  | ƒ d t | } xd	 d
 g D]õ } t t t | ƒ | ƒ t t | ƒ | ƒ ƒ t t t | ƒ | ƒ t | | ƒ ƒ t t t | ƒ | ƒ t | | ƒ ƒ t t t d | ƒ t | ƒ | ƒ t d | | ƒ t | | ƒ ƒ t t t t | ƒ ƒ | ƒ t t | | ƒ ƒ ƒ qG Wt t t | ƒ d t ƒ t | ƒ ƒ t t t | ƒ t ƒ t | ƒ ƒ t t t | ƒ t d ƒ t | ƒ ƒ q Wd  S(   Ni   i   i@   i   i    i   i   i   gš™™™™™¹?i   (   R   R   R   R   R   R,   R   R   (   R/   R#   R   R+   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyR0   4  s    "+&&##6&#(   R@   RA   R0   (    (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyRK   2  s   t   TestOverwritec           B` s™   e  Z d  Z e j e j g Z e e j e j g Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z RS(   s   Check input overwrite behavior c         O` sr   | j  ƒ  } | | | | Ž | j } | r> | t | ƒ 7} n  | rW | t | ƒ 7} n  t | | d d | ƒd  S(   Nt   err_msgs   spurious overwrite in %s(   t   copyR@   t   reprR   (   R/   R   t   routinet   argst   kwargst   x2t   sig(    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   _checkI  s    	c         O` s‰   t  j j d ƒ t  j | t  j ƒ rN t  j j | Œ  d t  j j | Œ  } n t  j j | Œ  } | j | ƒ } |  j | | | | Ž d  S(   NiÒ  y              ð?(   t   npR   t   seedt
   issubdtypet   complexfloatingt   randnt   astypeRU   (   R/   RP   t   dtypet   shapeRQ   RR   t   data(    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt	   _check_1dS  s    )c         C` s+   x$ |  j  D] } |  j t | d ƒ q
 Wd  S(   Ni   (   i   (   t   dtypesR_   R   (   R/   R\   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt	   test_diff\  s    c         C` s.   x' |  j  D] } |  j t | d d ƒ q
 Wd  S(   Ni   gš™™™™™ù?(   i   (   R`   R_   R	   (   R/   R\   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_tilbert`  s    c         C` s.   x' |  j  D] } |  j t | d d ƒ q
 Wd  S(   Ni   gš™™™™™ù?(   i   (   R`   R_   R
   (   R/   R\   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_itilbertd  s    c         C` s+   x$ |  j  D] } |  j t | d ƒ q
 Wd  S(   Ni   (   i   (   R`   R_   R   (   R/   R\   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_hilberth  s    c         C` s1   x* |  j  D] } |  j t | d d d ƒ q
 Wd  S(   Ni   g      ð?g      @(   i   (   R`   R_   R   (   R/   R\   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_cs_diffl  s    c         C` s1   x* |  j  D] } |  j t | d d d ƒ q
 Wd  S(   Ni   g      ð?g      @(   i   (   R`   R_   R   (   R/   R\   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_sc_diffp  s    c         C` s1   x* |  j  D] } |  j t | d d d ƒ q
 Wd  S(   Ni   g      ð?g      @(   i   (   R`   R_   R   (   R/   R\   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_ss_difft  s    c         C` s1   x* |  j  D] } |  j t | d d d ƒ q
 Wd  S(   Ni   g      ð?g      @(   i   (   R`   R_   R   (   R/   R\   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   test_cc_diffx  s    c         C` s.   x' |  j  D] } |  j t | d d ƒ q
 Wd  S(   Ni   g      ð?(   i   (   R`   R_   R   (   R/   R\   (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt
   test_shift|  s    (   R@   RA   t   __doc__RV   t   float32t   float64t   real_dtypest	   complex64t
   complex128R`   RU   R_   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   (    (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyRL   C  s   	
										(2   t
   __future__R    R   R   t	   __usage__t   numpy.testingR   R   R   t   scipy.fftpackR   R   R   R	   R
   R   R   R   R   R   R   R   R   t   numpyRV   R   R   R   R   R   R   R   R   t   numpy.randomR   R   R%   R'   R(   R)   R*   R,   t   objectR-   RB   RE   RF   RI   RK   RL   (    (    (    sD   lib/python2.7/site-packages/scipy/fftpack/tests/test_pseudo_diffs.pyt   <module>   s&   	X:
			m"*