
&]\c           @` s&  d  Z  d d l m Z m Z m Z d d l Z d d l 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 j Z d d l m Z d d l m Z m Z m Z m Z m Z m Z d d l Z d d l m Z d d l 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. m/ Z/ m0 Z0 m1 Z1 m2 Z2 d d
 l3 m4 Z4 d d l5 m6 Z6 d d l7 m8 Z8 d Z9 e j e j: e j; g Z< e j= e j> e j? g Z@ e< e@ ZA d   ZB d eC f d     YZD d eC f d     YZE d eC f d     YZF d eC f d     YZG d eC f d     YZH d eC f d     YZI d d  ZJ d eC f d     YZK d eC f d     YZL d  eC f d!     YZM d" eC f d#     YZN d$ eC f d%     YZO d& eC f d'     YZP d( eC f d)     YZQ d* eC f d+     YZR d S(,   s)    Test functions for linalg.basic module

i    (   t   divisiont   print_functiont   absolute_importN(   t   aranget   arrayt   dott   zerost   identityt	   conjugatet	   transposet   float32(   t   random(   t   assert_equalt   assert_almost_equalt   assert_t   assert_array_almost_equalt   assert_allcloset   assert_array_equal(   t   raises(   t   suppress_warnings(   t   solvet   invt   dett   lstsqt   pinvt   pinv2t   pinvht   normt   solve_bandedt   solveh_bandedt   solve_triangulart   solve_circulantt	   circulantt   LinAlgErrort
   block_diagt   matrix_balancet   LinAlgWarning(   t   LstsqLapackError(   t   assert_no_overwrite(   t   NumpyVersions   
Build linalg:
  python setup_linalg.py build
Run tests if scipy is installed:
  python -c 'import scipy;scipy.linalg.test()'
Run tests if linalg is not installed:
  python tests/test_basic.py
c         C` sL   |  } | t  j k r! t  j } n | t  j k r< t  j } n  t  j |  j S(   s;   Get the epsilon for dtype, possibly downcast to BLAS types.(   t   npt
   longdoublet   float64t   clongdoublet
   complex128t   finfot   eps(   t   dtypt   dt(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt	   _eps_cast6   s    t   TestSolveBandedc           B` sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C` s  t  d d d d g d d d d g d d d d g d d	 d
 d g g  } t  d d d d g d d d d g d d d
 d g d d	 d d g g  } d \ } } t  d d d d g  } | j d	 d  } t  d d g d d g d d g d d g g  } t  d d d d g d d d d g d d d d g d d d d g g  } xH | | | | g D]4 }	 t | | f | |	  }
 t t | |
  |	  qQWd  S(   Ng      ?i   i    ii   i   i   i   ii   i   g        g      $@g       @g      ,@i   (   i   i   (   R   t   reshapeR   R   R   (   t   selft   at   abt   lt   ut   b4t   b4by1t   b4by2t   b4by4t   bt   x(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt	   test_realB   s,    		c         C` s  t  d d d d g d d d d g d d d d g d d	 d
 d g g  } t  d d d d g d d d d g d d d
 d g d d	 d d g g  } d \ } } t  d d d d g  } | j d	 d  } t  d d g d d g d d g d d g g  } t  d d d d g d d d d g d d d d g d d d d g g  } xH | | | | g D]4 }	 t | | f | |	  }
 t t | |
  |	  qQWd  S(   Ng      ?i   i    ii   i   y               @i   ii   i   g        i   g      $@g       @y              ,@i   y              ?(   i   i   (   R   R3   R   R   R   (   R4   R5   R6   R7   R8   R9   R:   R;   R<   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_complexZ   s,    		c   	      C` s  t  d d d d g d d d d g d d d	 d
 g g  } t j | d
 d d   f d  t j | d d  d   f d
  t j | d d  d  f d  } t  d d d d g  } | j d d  } t  d d g d d g d d g d d g g  } t  d d
 d
 d
 g d
 d
 d
 d g d
 d d
 d
 g d
 d d
 d
 g g  } xB | | | | g D]. } t d | |  } t t | |  |  qPWd  S(   Ng        i   i   i   i   i   i   ii   i    ig      $@g       @g      ,@i   (   i   i   (   R   R(   t   diagR3   R   R   R   (	   R4   R6   R5   R9   R:   R;   R<   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_realr   s$    E		c   	      C` s  t  d d d d g d d d d g d d d	 d
 g g  } t j | d
 d d   f d  t j | d d  d   f d
  t j | d d  d  f d  } t  d d d d g  } | j d d  } t  d d g d d g d d g d d g g  } t  d d
 d
 d
 g d
 d
 d
 d g d
 d d
 d
 g d
 d d
 d
 g g  } xB | | | | g D]. } t d | |  } t t | |  |  qPWd  S(   Ng        i   i   y               @i   i   i   ii   i    i   ig      $@g       @y              ,@i   (   i   i   (   R   R(   RA   R3   R   R   R   (	   R4   R6   R5   R9   R:   R;   R<   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_complex   s$    E		c         C` s   t  d d d d g d d d d g d d d d g d d	 d
 d g g  } t  d d d d g d d d d g d d d
 d g d d	 d d g g  } d \ } } t  d d d d g  } t | | f | | d t } t t | |  |  d  S(   Ng      ?i   i    ii   i   i   i   ii   i   g        g      $@g       @g      ,@t   check_finite(   i   i   (   R   R   t   FalseR   R   (   R4   R5   R6   R7   R8   R9   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_check_finite   s    c         C` s   t  d d d d g d d d d g d d d	 d
 g d d d
 d
 g g  } d \ } } t  d d d d g  j d d  } t t t | | f | |  t t t | | f | d d g  t t t d | d d g  d  S(   Ng        i   i   i   i   i   i   ii   i    ig      ?g       @g      @g      @(   i   i   (   i   i   (   R   R3   t   assert_raisest
   ValueErrorR   (   R4   R6   R7   R8   t   bad(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_bad_shape   s    $"c         C` s   t  d d d g g  } t d
 d g d g d g g |  } t | d d d g g  t | j t j d	   t | d d d g g  d  S(   Ng      ?g       @g      @i   i    i   g      ?g      ?t   f8(   i   i   (   R   R   R   R   t   dtypeR(   (   R4   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_1x1   s
    $c         C` s   d d d d g d d d d g d d d d g d d	 d
 d g g } d d d d g d d d d g d d d
 d g d d	 d d g g } d \ } } d d d d g } t  | | f | |  } t t | |  |  d  S(   Ng      ?i   i    ii   i   i   i   ii   i   g        g      $@g       @g      ,@(   i   i   (   R   R   R   (   R4   R5   R6   R7   R8   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_native_list_arguments   s    (
   t   __name__t
   __module__R?   R@   RB   RC   RF   RJ   RM   RN   (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR2   @   s   							t   TestSolveHBandedc           B` s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s}   t  d d d d g d d d d g d d d d g g  } t  d d d d g  } t | |  } t | d d d d g  d  S(   Ng        g       @ig      ?g      @(   R   R   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_01_upper   s    c         C` s   t  d d d d g d d d d g d d d d g g  } t  d d g d d g d d g d d g g  } t | |  } t  d d g d d g d d g d d g g  } t | |  d  S(   Ng        g       @ig      ?g      @g      @(   R   R   R   (   R4   R6   R=   R>   t   expected(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_02_upper   s    				c         C` s   t  d d d d g d d d d g d d d d g g  } t  d d d d g  j d d  } t | |  } t | t  d d d d g  j d d   d  S(   Ng        g       @ig      ?g      @ii   (   R   R3   R   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_03_upper   s    $c         C` s   t  d d d d g d d d d g d d d d g g  } t  d d d d g  } t | | d t } t | d d d d g  d  S(   Ng      @g      ?ig       @g        t   lower(   R   R   t   TrueR   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_01_lower   s    c         C` s   t  d d d d g d d d d g d d d d g g  } t  d d g d d g d d g d d g g  } t | | d t } t  d d g d d g d d g d d g g  } t | |  d  S(   Ng      @g      ?ig       @g        g      @RV   (   R   R   RW   R   (   R4   R6   R=   R>   RS   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_02_lower  s    				c         C` s   t  d d d d g d d d d g d d d d g g d t } t  d d d d g d t } t | |  } t | d d d d g  d  S(   Ng        g       @ig      ?g      @RL   (   R   R
   R   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_01_float32!  s    c         C` s   t  d d d d g d d d d g d d d d g g d t } t  d d g d d g d d g d d g g d t } t | |  } t  d d g d d g d d g d d g g  } t | |  d  S(   Ng        g       @ig      ?g      @RL   g      @(   R   R
   R   R   (   R4   R6   R=   R>   RS   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_02_float32/  s    				c         C` s}   t  d d d d g d d d d g d d d d g g  } t  d
 d d d g  } t | |  } t | d d	 d	 d g  d  S(   Ng        g       @iy              g      @i   y              ?i   g      ?y       @      y      @      y      @      ?y       @      ?(   R   R   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_01_complexD  s    c         C` s   t  d d d d g d d d d g d d d d g g  } t  d d g d d g d d g d d g g  } t | |  } t  d d g d d g d d g d d g g  } t | |  d  S(   Ng        g       @iy              g      @i   y              ?y              @ii   y               @g      ?y       @      y       @      @y      @      y            y      @      ?y      @       @y       @      ?(   R   R   R   (   R4   R6   R=   R>   RS   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_02_complexR  s    				c         C` sb   t  d d d g d d d g g  } t  d d d g  } t | |  } t | d d d g  d  S(   Nig      ?g      @g        (   R   R   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_01_upperg  s    $c         C` s   t  d d d g d d d g g  } t  d d g d d g d d g g  } t | |  } t  d d g d d g d d g g  } t | |  d  S(   Nig      ?g      @g       @g        (   R   R   R   (   R4   R6   R=   R>   RS   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_02_upperr  s    		c         C` s   t  d d d g d d d g g  } t  d d d g  j d d  } t | |  } t | t  d d d g  j d d   d  S(   Nig      ?g      @ii   g        (   R   R3   R   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_03_upper  s    $!c         C` sh   t  d d d g d d d g g  } t  d d d g  } t | | d t } t | d d d g  d  S(   Ng      @g      ?iRV   g        (   R   R   RW   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_01_lower  s
    c         C` s   t  d d d g d d d g g  } t  d d g d d g d d g g  } t | | d t } t  d d g d d g d d g g  } t | |  d  S(   Ng      @g      ?ig       @RV   g        (   R   R   RW   R   (   R4   R6   R=   R>   RS   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_02_lower  s    		c         C` sn   t  d d d g d d d g g d t } t  d d d g d t } t | |  } t | d d d g  d  S(   Nig      ?g      @RL   g        (   R   R
   R   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_01_float32  s    *c         C` s   t  d d d g d d d g g d t } t  d d g d d g d d g g d t } t | |  } t  d d g d d g d d g g  } t | |  d  S(   Nig      ?g      @RL   g       @g        (   R   R
   R   R   (   R4   R6   R=   R>   RS   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_02_float32  s    		c         C` sb   t  d d d g d d d g g  } t  d d d	 g  } t | |  } t | d d d g  d  S(
   Niy              g      @y              ?i   g        g      ?y      @      y      @      ?(   R   R   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_01_complex  s    $c         C` s   t  d d d g d d d g g  } t  d d g d	 d
 g d d g g  } t | |  } t  d d g d d g d d g g  } t | |  d  S(   Niy              g      @y              @y              ?g      g        g      ?y      @      y            y      @      ?(   R   R   R   (   R4   R6   R=   R>   RS   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_tridiag_02_complex  s    		c         C` sh   t  d d d g d d d g g  } t  d d d g  } t | | d t } t | d d d g  d  S(   Nig      ?g      @RD   g        (   R   R   RE   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRF     s    $c         C` s   t  d d d g d d d g g  } t  d d g d d g g  } t t t | |  t t t | d d g  t t t | d g  d  S(   Nig      ?g      @g       @(   R   RG   RH   R   (   R4   R6   R=   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_bad_shapes  s    c         C` sW   t  d g g d d d g g  } t | d d d g g  t | j t j d   d  S(   Ni   i   i   g      ?g       @g      @RK   (   R   R   R   RL   R(   (   R4   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRM     s    !c         C` sq   d d d d g d d d d g d d d d g g } d d d d g } t  | |  } t | d d d d g  d  S(   Ng        g       @ig      ?g      @(   R   R   (   R4   R6   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRN     s    (   RO   RP   RR   RT   RU   RX   RY   RZ   R[   R\   R]   R^   R_   R`   Ra   Rb   Rc   Rd   Re   Rf   RF   Rg   RM   RN   (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRQ      s,   																						t	   TestSolvec           B` s  e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z e j j d d  d    Z RS(   c         C` s   t  j j d  d  S(   Ni  (   R(   R   t   seed(   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   setup_method  s    c         C` s   d d g d d g g } t  | d d g  } t t | |  d d g  d d g d d g g } d d g } t  | |  } t t | |  d d g  d  S(   Ni   g      ?i    y                g333333?(   R   R   R   (   R4   R5   t   x0R=   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_20Feb04_bug
  s    c         C` s   d d g d d g g } xf d d g d d g g d d g d d g d d g g f D]+ } t  | |  } t t | |  |  qR Wd  S(   Ni   i   ii   i    i   (   R   R   R   (   R4   R5   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple  s
    !c      	   C` s   d d g d d g g } xt d d g D]f } x] d d g d d g g d d g f D]7 } t  | | d d d | } t t | |  |  qP Wq% Wd  S(   Ni   i   i   i    i   t   sym_posRV   (   R   R   R   (   R4   R5   RV   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_sym  s
    +c         C` sv   d d g d d g g } xW d d g d d g d d g g g D]1 } t  | | d d } t t | |  |  q= Wd  S(   Ni   i   i   y              ?i    Rn   i   (   R   R   R   (   R4   R5   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_sym_complex#  s    	c         C` s   t  d d g d d g g d  } xl d d g d d g d d g g d d	 g t  d d g d  g D]+ } t | |  } t t | |  |  qa Wd  S(
   Ni   i   y               @i   t   Dy              ?i    i   y                (   R   R   R   R   (   R4   R5   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_complex,  s    !		c         C` s   d } t  | | g  t  | | g  d } t | | f d  } t |  } t |  t |  d } xL t d |  D]; } | d  d   | f } t | |  | d  d   | f <qw Wt | |  d  S(   Ni   y              ?Rq   y                i    (   R   R   R   R   R   R   R   (   R4   t   nt   At   Xt   Ainvt   Rt   it   r(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_nils_20Feb047  s    &#c         C` s   d } t  | | g  } x6 t |  D]( } d d | | | f | | | f <q% WxK t d  D]= } t  | d g  } t | |  } t t | |  |  q^ Wd  S(   Ni   g?i   i   (   R   t   rangeR   R   R   (   R4   Rs   R5   Rx   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_randomB  s    &c         C` s   d } t  | | g  d t  | | g  } x6 t |  D]( } d d | | | f | | | f <q9 WxK t d  D]= } t  | d g  } t | |  } t t | |  |  qr Wd  S(   Ni   y              ?g?i   i   (   R   R{   R   R   R   (   R4   Rs   R5   Rx   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_random_complexM  s    &&c         C` s   d } t  | | g  } xm t |  D]_ } t d d | | | f  | | | f <x. t |  D]  } | | | f | | | f <q` Wq% WxN t d  D]@ } t  | g  } t | | d d } t t | |  |  q Wd  S(   Ni   g?i   Rn   i   (   R   R{   t   absR   R   R   (   R4   Rs   R5   Rx   t   jR=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_random_symW  s    ("c         C` s  d } t  | | g  } | d t  | | g  } xs t |  D]e } t d d | | | f  | | | f <x4 t |  D]& } t | | | f  | | | f <qz Wq? Wt  | g  d t  | g  } x? t d  D]1 } t | | d d } t t | |  |  q Wd  S(   Ni   y              ?g?y               @i   Rn   i   (   R   R{   R~   R   R   R   R   (   R4   Rs   R5   Rx   R   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_random_sym_complexc  s    (( c         C` s   d d g d d g g } xl d d g d d g g d d g d d g d d g g f D]1 } t  | | d t } t t | |  |  qR Wd  S(   Ni   i   ii   i    i   RD   (   R   RE   R   R   (   R4   R5   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRF   q  s
    !c         C` sQ   d } d d d g } t  | |  } t | j   |  t | j d k d  d  S(   Ni   i   i   s'   Scalar_a_1D_b test returned wrong shape(   i   (   R   R   t   ravelR   t   shape(   R4   R5   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_scalar_a_and_1D_bx  s
    c         C` s   t  j d d d d g d d d d g d	 d
 d d g d d d d g g  } t  j d d g d d g d d g d d g g  } t | |  } t | t  j d d d d g d d d d g g  j  d  S(    Ng?g
ףp=
@gffffff @g{Gzg     h@g     prg     Wg     wgHzG?gQg333333gp=
ףg(\gQgzGg?g
ףp=
#@gQx2@g     @g      l@gp=
ף?g(\*gzGgףp=
g      ?ii   ii   i   i   (   R(   R   R   R   t   T(   R4   R5   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple2  s    		c      	   C` s   t  j d< d= d> d? g d@ dA dB dC g dD dE dF dG g dH dI dJ dK g g  } t  j dL dM g dN dO g dP dQ g dR dS g g  } t | |  } t | t  j dT dU g dV dW g dX dY g d; dZ g g   d  S([   Ngq=
ףpy        ffffff@gQ?y        \(\	@g(\y        @g
ףp=
?y        q=
ףp?g333333y        333333,@ǧ@@y              ?g      y        *@g)@y        +@gRQ
y        Q@g(\y        Gz@gQy        ?gQ?gHzG@y        (\?gQy        Q?g(\y        Gz?g\(\y        q=
ףp?g(\B:@y        p=
I@gRQ?@y        @g33333P@y        33333U@g33333c@y        ffffff,@g      y        (\O9@g333333y        q=
ף0>@g(\?y        (\@g{Gzy        333333@i   y              ?iy               @i   y              @i   iy              @iy              @y              @yq=
ףpffffff@yQ?\(\	@y(\y
ףp=
?q=
ףpy333333333333,y̌@@      y      *@y)@+@yRQ
Qy(\Gz@yQyQ??yHzG@(\?yQ῅Q?y(\Gzy\(\q=
ףp?y(\B:@p=
I@yRQ?@y33333P@33333Uy33333c@ffffff,y      (\O9@y333333q=
ף0>@y(\?(\@y{Gz333333@y      ?      ?y             y       @      y      @      ?y            y            @y       @      (   R(   R   R   R   (   R4   R5   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_complex2  s    				c         C` s  t  j d d0 d1 d2 g d d	 d3 d4 g d d d d5 g d d d d g g  } t  j d6 d7 g d8 d9 g d: d; g d< d= g g  } t  j d> d? g d@ dA g dB dC g dD dE g g  } t | | d- d. } t | |  t | j   j | d- d. d/ t } t | |  d  S(F   Ngq=
ףpg)\(?y        )\(?g{Gzy        zG?gHzG@y              ?i    gQy        Q?gGz@y        zG?g=
ףp!gHzG?y        ?g(\gףp=
@y        \(\$@gGz<@y        RC@g)\(#y        
ףp=
@g
ףp=8y         @gp=
ףy        0@gQ@y        zGQ@g)\(@y        Q@gRAy        (\2@g       @y              ?iy              @g      @y               @i   iy              @g      ?i   y              @t   assume_at   herRV   y)\(?)\(y{GzzGyHzG@      yq=
ףpQ?yGz@zG?yHzG?yףp=
@\(\$yGz<@RCy)\(#
ףp=
@y
ףp=8 yp=
ף0yQ@zGQy)\(@Q@yRA(\2@y       @      ?y             @y      @       y      @       y             @y            @y      ?      y      @      (   R(   R   R   R   t   conjR   RW   (   R4   R5   R=   t   resR>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_hermitian  s     				$c         C` s   t  j d d  j d d  } t t  j |  d t  j d  d d } t | d d d	 g  t t  j |  d t  j d  d d
 } t | d d d	 g  d  S(   Ni   i
   i   i	   R   t   posg      "@g?g      ?t   sym(   R(   R   R3   R   t   trilt   onesR   (   R4   Rt   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_pos_and_sym  s
    ++c         C` sS  t  j d d d d d d d d d g	 d d d d d d d d d g	 d d d d d d d d d g	 d d d d d d d d d g	 d d d d d d d d d g	 d d d d d d d d d g	 d d d d d d d d d g	 d d d d d d d d d g	 d d d d d d d d d g	 g	  } t  j d  d  d   d  f } t t t | |  d  S(   Ni   i    i	   (   R(   R   R   t   NoneRG   R!   R   (   R4   R5   R=   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_singularity  s    $'c      	   C` sg   t  j d d g d d g g  } t  j d  } t j   % t j d  t t t | |  Wd  QXd  S(   Ni   gؗҜ<i   t   errorg      ?g?(	   R(   R   R   t   warningst   catch_warningst   simplefilterRG   R$   R   (   R4   R5   R=   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_ill_condition_warning  s
    !c         C` sZ   t  j d  } g  g  g } t | |  } t | j d k d  t | j d k d  d  S(   Ni   i    s   Returned array is not emptys#   Returned empty array shape is wrong(   i   i    (   R(   t   eyeR   R   t   sizeR   (   R4   R5   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_empty_rhs  s
    c         C` sG   t  j d  } t  j j d d d  } t | |  } t | |  d  S(   Ni   i   i   (   R(   R   R   t   randR   R   (   R4   R5   R=   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_multiple_rhs  s    c         C` s   t  j d  j d d  d } t t  j |  d t  j d  d t } t | d d d g  t t  j |  d t  j d  d t } t | d d d g  d  S(	   Ni	   i   i   t
   transposedg333333?g?gg333333(	   R(   R   R3   R   R   R   RW   R   RE   (   R4   Rt   R>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_transposed_keyword  s
    ++c      	   C` sB   t  j d  j t  } t t   t | | d t Wd  QXd  S(   Ni   R   (   R(   R   t   astypet   complexRG   t   NotImplementedErrorR   RW   (   R4   R5   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_transposed_notimplemented  s    c         C` s   t  t t d d g d  d  S(   Ni   i   (   RG   RH   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_nonsquare_a  s    c         C` sZ   t  t t j d  t j d   t j d   t t t t j d  t j d   d  S(   Ni   i   (   R   R   R(   R   R   RG   RH   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_size_mismatch_with_1D_b  s    1c         C` s   t  t t d d d d d  S(   Ni   R   t   zxcv(   RG   RH   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_assume_a_keyword  s    t   reasons5   Failure on OS X (gh-7500), crash on Windows (gh-8064)c      
   C` s  d d g } d d d d g } t  j t  j t  j t  j g } xYt j | | |  D]B\ } } } | t  j t  j f k } | d k r | r qR n  d j | | |  } t  j j	 | |  j
 |  }	 t  j j	 |  j
 |  }
 | r|	 d t  j j	 | |  j
 |  }	 n  | d k r+|	 |	 j }	 nZ | d k rM|	 |	 j j   }	 n8 | d k r|	 j   j j |	  d	 t  j |  }	 n  | t  j t  j f k rd
 n d } | d k r| t  j t  j f k r| d 9} qn  t |	 |
 d | } t |	 j |  |
 d | | d | | d | | d k rR | t  j t  j f k rR t |	 |
 d | d t } t |	 j |  |
 d | | d | | d | qR qR Wd  S(   Ni
   id   t   genR   R   R   s+   Failed for size: {}, assume_a: {},dtype: {}y              ?g?g-q=gư>R   t   atolt   rtolt   err_msgR   (   R   R   R   (   R(   R
   R*   t	   complex64R,   t	   itertoolst   productt   formatR   t   randnR   R   R   R   R   R   R   RW   (   R4   t   sizest	   assume_ast   dtypesR   R   RL   t
   is_complexR   R5   R=   t   tolR>   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt'   test_all_type_size_routine_combinations  sH    ),$



(    RO   RP   Rj   Rl   Rm   Ro   Rp   Rr   Rz   R|   R}   R   R   RF   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   pytestt   markt   skipR   (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRh     s6   										
																	t   TestSolveTriangularc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s   t  d d g d d g g  } d d g } t | | d t } t | d d g  t | j | d t } t | d d g  t | | d t d d } t | d d g  t d  } t | | d t d d } t | d d g d d g g  d	 S(
   s:   
        solve_triangular on a simple 2x2 matrix.
        i   i    i   RV   g      ?t   transg      ?g      N(   R   R   RW   R   R   RE   R   (   R4   Rt   R=   t   sol(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRm   %  s    c         C` sh   t  d d g d d g g  } t d  } t | | d t d d } t | d d g d d g g  d S(   sA   
        solve_triangular on a simple 2x2 complex matrix
        i   y              ?i    i   RV   R   g      ?y              ?g      пy              ?Ny      ?      ?y      ?      y      п      п(   R   R   R   RW   R   (   R4   Rt   R=   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRr   :  s    c         C` s\   t  d d g d d g g  } d d g } t | | d t d t } t | d d g  d S(   s:   
        solve_triangular on a simple 2x2 matrix.
        i   i    i   RV   RD   N(   R   R   RW   RE   R   (   R4   Rt   R=   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRF   C  s    (   RO   RP   Rm   Rr   RF   (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR   #  s   			t   TestInvc           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  j j d  d  S(   Ni  (   R(   R   Ri   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRj   N  s    c         C` s   d d g d d g g } t  |  } t t | |  t j d   d d d g d d d g d d d	 g g } t  |  } t t | |  t j d   d  S(
   Ni   i   i   i   i   i   i   i   i
   (   R   R   R   R(   R   (   R4   R5   t   a_inv(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRm   Q  s    *c         C` s   d } x t  d  D]y } t | | g  } x6 t  |  D]( } d d | | | f | | | f <q8 Wt |  } t t | |  t |   q Wd  S(   Ni   i   g?(   R{   R   R   R   R   R   (   R4   Rs   Rx   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR|   Y  s    &c         C` sP   d d g d d g g } t  |  } t t | |  d d g d d g g  d  S(   Ni   i   i   y              @i    (   R   R   R   (   R4   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRr   c  s    c         C` s   d } x t  d  D] } t | | g  d t | | g  } x6 t  |  D]( } d d | | | f | | | f <qL Wt |  } t t | |  t |   q Wd  S(   Ni   i   y               @g?(   R{   R   R   R   R   R   (   R4   Rs   Rx   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR}   h  s    &&c         C` sV   d d g d d g g } t  | d t } t t | |  d d g d d g g  d  S(   Ni   i   i   i   RD   i    (   R   RE   R   R   (   R4   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRF   r  s    (   RO   RP   Rj   Rm   R|   Rr   R}   RF   (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR   M  s   			
		
t   TestDetc           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  j j d  d  S(   Ni  (   R(   R   Ri   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRj   y  s    c         C` s5   d d g d d g g } t  |  } t | d  d  S(   Ni   i   i   i   g       (   R   R   (   R4   R5   t   a_det(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRm   |  s    c         C` s5   d d g d d g g } t  |  } t | d  d  S(   Ni   i   i   y              @iy            @(   R   R   (   R4   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRr     s    c         C` sa   t  j } d } xK t d  D]= } t | | g  } t |  } | |  } t | |  q Wd  S(   Ni   i   (   t   linalgR   R{   R   R   (   R4   t	   basic_detRs   Rx   R5   t   d1t   d2(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR|     s    	c         C` s{   t  j } d } xe t d  D]W } t | | g  d t | | g  } t |  } | |  } t | | d d q Wd  S(   Ni   i   y               @R   gvIh%<=(   R   R   R{   R   R   (   R4   R   Rs   Rx   R5   R   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR}     s    	&c         C` s;   d d g d d g g } t  | d t } t | d  d  S(   Ni   i   i   i   RD   g       (   R   RE   R   (   R4   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRF     s    (   RO   RP   Rj   Rm   Rr   R|   R}   RF   (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR   x  s   							c         C` sL   t  |   } | r! t |  } n  t | |   } t | |  } t | |  S(   N(   R	   R   R   R   (   R5   R=   t   cmplxt   att   a1t   b1(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   direct_lstsq  s    t	   TestLstsqc           B` sq   e  Z d Z d   Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 d
   Z d   Z d   Z d   Z RS(   t   gelsdt   gelsst   gelsyc         C` s   t  j j d  d  S(   Ni  (   R(   R   Ri   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRj     s    c         C` s  xt  D]y} t j d d g d d g g d | } xIt j D]>} x5t t f D]'} xd d f d d d f f D]} | j   } t j | d | } | j   } y% t | | d | d	 | d
 | }	 Wn5 t	 k
 r| d  k rs d }
 t |
   qqs n X|	 d } |	 d } t | d k d |  t t | |  | d d t | j  d d t | j  d d | qs WqQ Wq> Wq Wd  S(   Ni   i   ii   RL   i    i   t   lapack_drivert   overwrite_at   overwrite_bs6   LstsqLapackError raised with lapack_driver being None.s!   expected efficient rank 2, got %sR   i   R   R   s
   driver: %s(   i   i    (   i    i   (   i   i    (   i   i   (   ii   (   t   REAL_DTYPESR(   R   R   t   lapack_driversRW   RE   t   copyR   R%   R   t   AssertionErrorR   R   R   R1   RL   (   R4   RL   R5   R   t	   overwritet   btR   R=   R   t   outt   mesgR>   Ry   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_exact  s8    '

c         C` s  xt  D]} t j d d g d d g d d g g d | } t j d d d g d | } xt j D]} xt t f D]|} | j   } | j   } y% t | | d | d | d	 | } Wn5 t	 k
 r | d  k rx d
 }	 t |	   q qx n X| d }
 | d k r,t j | | j |
  d  } n
 | d } | d } t | d k d |  t t t | |
  | d  j d d  | d d t | j  d d t | j  d d | t |
 d d d t | j  d d t | j  d d | qx Wqe Wq Wd  S(   Ni   i   i   i   i   RL   R   R   R   s6   LstsqLapackError raised with lapack_driver being None.i    R   s!   expected efficient rank 2, got %st   axisR   i   R   R   s
   driver: %sgm۶mۿgm۶m?(   gm۶mۿgm۶m?(   R   R(   R   R   R   RW   RE   R   R   R%   R   R   t   sumR   R   R   R~   R1   RL   (   R4   RL   R5   R=   R   R   R   R   R   R   R>   t	   residualsRy   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_overdet  s>    0
#

)c         C` s  xt  D]} t j d d g d d g d d g g d | } t j d d d g d | } xt j D]} xt t f D]} | j   } | j   } y% t | | d	 | d
 | d | } Wn5 t	 k
 r | d  k rx d }	 t |	   q qx n X| d }
 | d k r8| | j |
  } t j | | j    } n
 | d } | d } t | d k d |  t t t | |
  | d  j d d  | d d t | j  d d t | j  d d | t |
 d d f d d t | j  d d t | j  d d | qx Wqe Wq Wd  S(   Ni   y               @i   i   i   i   RL   y              @R   R   R   s6   LstsqLapackError raised with lapack_driver being None.i    R   s!   expected efficient rank 2, got %sR   R   i   R   R   s
   driver: %sgu{޿y        E(B?gӽu{?y        (YJV?y      ?       @y       @      @yu{޿E(B?yӽu{?(YJV?(   t   COMPLEX_DTYPESR(   R   R   R   RW   RE   R   R   R%   R   R   R   R   R   R   R   R~   R1   RL   (   R4   RL   R5   R=   R   R   R   R   R   R   R>   R   R   Ry   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_overdet_complex  sD    0


)	c         C` se  x^t  D]V} t j d d d g d d d g g d | } t j d d g d | } xt j D] } x t t f D] } | j   } | j   } y% t | | d | d	 | d
 | } Wn5 t	 k
 r | d  k rr d }	 t |	   q qr n X| d }
 | d } t | d k d |  t |
 d d d t | j  d d t | j  d d | qr Wq_ Wq Wd  S(   Ni   i   i   i   i   i   RL   R   R   R   s6   LstsqLapackError raised with lapack_driver being None.i    s!   expected efficient rank 2, got %sgqqgqq?gdq?R   i   R   R   s
   driver: %s(   gqqgqq?gdq?(   R   R(   R   R   R   RW   RE   R   R   R%   R   R   R   R   R1   RL   (   R4   RL   R5   R=   R   R   R   R   R   R   R>   Ry   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_underdet#  s0    -

c         C` s'  x t  D]} xd D]} xt j D]} xt t f D]} t j t | | g  d | } x6 t |  D]( } d d | | | f | | | f <qk Wxyt d  D]k} t j t | d g  d | } | j	   } | j	   }	 y% t
 | |	 d | d | d	 | }
 Wn5 t k
 r?| d  k r d
 } t |   q@q n X|
 d } |
 d } t | | k d | | f  | t j k rt t | |  | d d t | j  d d t | j  d d | q t t | |  | d d t | j  d d t | j  d d | q Wq7 Wq$ Wq Wq Wd  S(   Ni   i   RL   g?i   i   R   R   R   s6   LstsqLapackError raised with lapack_driver being None.i    i   s"   expected efficient rank %s, got %sR   i  R   R   s
   driver: %si  (   i   i   (   R   R   R   RW   RE   R(   t   asarrayR   R{   R   R   R%   R   R   R   R
   R   R   R1   RL   (   R4   RL   Rs   R   R   R5   Rx   R=   R   R   R   R   R>   Ry   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_random_exactB  sH    !&!

c         C` s  xt  D]} xd D]} xt j D]} xt t f D]} t j t | | g  d t | | g  d | } x6 t |  D]( } d d | | | f | | | f <q Wx=t d  D]/} t j t | d g  d | } | j	   } | j	   }	 t
 | |	 d | d	 | d
 | }
 |
 d } |
 d } t | | k d | | f  | t j k rt t | |  | d d t | j  d d t | j  d d | q t t | |  | d d t | j  d d t | j  d d | q Wq7 Wq$ Wq Wq Wd  S(   Ni   i   y              ?RL   g?i   i   R   R   R   i    s"   expected efficient rank %s, got %sR   i  R   R   s
   driver: %si  (   i   i   (   R   R   R   RW   RE   R(   R   R   R{   R   R   R   R   R   R   R1   RL   (   R4   RL   Rs   R   R   R5   Rx   R=   R   R   R   R>   Ry   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_random_complex_exactm  s<    ,	&!	

c         C` s  xt  D]} xd d f D]\ } } xt j D]} xt t f D]} t j t | | g  d | } x6 t |  D]( } d d | | | f | | | f <qw Wx't d  D]} t j t | d g  d | } | j	   }	 | j	   }
 y% t
 |	 |
 d	 | d
 | d | } Wn5 t k
 rK| d  k r d } t |   qLq n X| d } | d } t | | k d | | f  t | t | | d d d d t |	 j  d d t |	 j  d d | q WqC Wq0 Wq Wq Wd  S(   Ni   i   i   i   RL   g?i   i   R   R   R   s6   LstsqLapackError raised with lapack_driver being None.i    s"   expected efficient rank %s, got %sR   R   i   R   R   s
   driver: %s(   i   i   (   i   i   (   R   R   R   RW   RE   R(   R   R   R{   R   R   R%   R   R   R   R   R   R1   RL   (   R4   RL   Rs   t   mR   R   R5   Rx   R=   R   R   R   R   R>   Ry   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_random_overdet  s<    !&!

c         C` s  xt  D]} xd d f D]\ } } xt j D]y} xpt t f D]b} t j t | | g  d t | | g  d | } x6 t |  D]( } d d | | | f | | | f <q Wx t d  D] } t j t | d g  d | } | j	   }	 | j	   }
 t
 |	 |
 d	 | d
 | d | } | d } | d } t | | k d | | f  t | t | | d d d d t |	 j  d d t |	 j  d d | q WqC Wq0 Wq Wq Wd  S(   Ni   i   i   i   y              ?RL   g?i   R   R   R   i    s"   expected efficient rank %s, got %sR   i   R   i   R   R   s
   driver: %s(   i   i   (   i   i   (   R   R   R   RW   RE   R(   R   R   R{   R   R   R   R   R   R1   RL   (   R4   RL   Rs   R   R   R   R5   Rx   R=   R   R   R   R>   Ry   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_random_complex_overdet  s2    ,	&!	

c         C` s  t     } | j t d  Wd  QXt j d d f  } x`t j t d d f d d d f f t j	 t
 t f t
 t f  D]\ } } } } } | j |  } t j | d | }	 | j   }
 |	 j   } y+ t |
 | d	 | d
 | d | d | } Wn/ t k
 r$| d  k rw t d   q%qw n X| d } | d } t | d k d |  t t | |  |	 d d t | j  d d t | j  d d | qw Wd  S(   NsI   internal gelsd driver lwork query error,.*Falling back to 'gelss' driver.i   i   ii   i    i   RL   R   RD   R   R   s:   LstsqLapackError raised with "lapack_driver" being "None".s!   expected efficient rank 2, got %sR   i   R   R   s
   driver: %s(   i   i   (   ii   (   i   i    (   i    i   (   i   i    (   i   i   (   ii   (   R   t   filtert   RuntimeWarningR(   R   R   R   R   R   R   RW   RE   R   R   R   R%   R   R   R   R   R   R1   RL   (   R4   t   supR   RL   R   R   R   RD   R5   R=   R   R   R   R>   Ry   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRF     s:    			"

c   	      C` s  x d d f d	 d
 f d d f d d f f D] \ } } t  j |  } t t  j |  |  \ } } } } t | t  j | d f | d   | d r t  j d  n t  j j | d d d } t | |  t | d k d  t | t  j d   q+ Wd  S(   Ni    i   i   i   R   s   expected rank 0(   i    i   (   i    (   i    i   (   i    i   (   i   i    (   i   (   i   i    (   i   i   (   i    (   i    (	   R(   R   R   R   R   t   emptyR   R   R   (	   R4   t   a_shapet   b_shapeR=   R>   t   residuest   rankt   st   residues_should_be(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_zero_size  s    		$%N(   R   R   R   N(   RO   RP   R   R   Rj   R   R   R   R   R   R   R   R   RF   R   (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR     s   		$	'	*		+	"	%		)t   TestPinvc           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  d d d g d d d g d d d	 g g d
 t } t |  } t t | |  t j d   t |  } t t | |  t j d   d  S(   Ni   i   i   i   i   i   i   i   i
   RL   (   R   t   floatR   R   R   R(   R   R   (   R4   R5   t   a_pinv(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_real  s
    6c         C` s   t  d d d g d d d g d d d	 g g d
 t d t  d	 d d g d d d g d d d g g d
 t } t |  } t t | |  t j d   t |  } t t | |  t j d   d  S(   Ni   i   i   i   i   i   i   i   i
   RL   y              ?(   R   R   R   R   R   R(   R   R   (   R4   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRr     s    -6c         C` s_   t  d d d g d d d g d d d	 g g d
 t } t |  } t |  } t | |  d  S(   Ni   i   i   i   i   i   i   i   i	   RL   (   R   R   R   R   R   (   R4   R5   R   t   a_pinv2(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_singular  s    6c         C` sS   t  d d d g d d d g g d t } t |  } t |  } t | |  d  S(   Ni   i   i   i   i   i   RL   (   R   R   R   R   R   (   R4   R5   R   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_cols!  s    *c         C` sV   t  d d g d d g d d g g d t } t |  } t |  } t | |  d  S(   Ni   i   i   i   i   i   RL   (   R   R   R   R   R   (   R4   R5   R   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_simple_rows'  s    -c         C` s   t  d d d g d d d g d d d	 g g  } t | d
 t } t t | |  t j d   t | d
 t } t t | |  t j d   d  S(   Ni   i   i   i   i   g      @i   i   i
   RD   (   R   R   RE   R   R   R(   R   R   (   R4   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRF   -  s
    0c         C` sS   d d d g d d d g d d d	 g g } t  |  } t |  } t | |  d  S(
   Ni   i   i   i   i   i   i   i   i	   (   R   R   R   (   R4   R5   R   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_native_list_argument4  s    *(	   RO   RP   R   Rr   R   R   R   RF   R   (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR   	  s   							t   TestPinvSymmetricc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` s}   t  d d d g d d d g d d d	 g g d
 t } t j | | j  } t |  } t t j | |  t j d   d  S(   Ni   i   i   i   i   i   i   i   i
   RL   (   R   R   R(   R   R   R   R   R   (   R4   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR   =  s    6c         C` s   t  d d d g d d d g d d d	 g g d
 t } t j | | j  } t j j |  \ } } } | d c d 9<t j | | |  } t |  } t |  } t	 | |  d  S(   Ni   i   i   i   i   i   i   i   i	   RL   i    i(
   R   R   R(   R   R   R   t   svdR   R   R   (   R4   R5   R8   R   t   vtR   t   a_pinvh(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_nonpositiveC  s    6c         C` s   t  d d d g d d d g d d d	 g g d
 t d t  d	 d d g d d d g d d d g g d
 t } t j | | j   j  } t |  } t t j | |  t j d   d  S(   Ni   i   i   i   i   i   i   i   i
   RL   y              ?(	   R   R   R(   R   R   R   R   R   R   (   R4   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRr   M  s    -6c         C` s   t  d d d g d d d g d d d	 g g d
 t } t j | | j  } t | j    } t t j | |  t j d   d  S(   Ni   i   i   i   i   i   i   i   i
   RL   (	   R   R   R(   R   R   R   t   tolistR   R   (   R4   R5   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR   U  s    6(   RO   RP   R   R   Rr   R   (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR   ;  s   		
	t   TestVectorNormsc           B` se   e  Z d    Z d   Z d   Z d   Z d   Z e j j	 e
 e j  d k  d d d    Z RS(	   c         C` sB  x t  j d D] } t  j d d d g d | } t d t  j |  j j d  } t t |  t  j	 d  d	 | t t | d  t  j	 d  d	 | q Wx t  j d
 D] } t  j d d d g d | } t d t  j |  j j d  } t t |  t  j	 d  d	 | t t | d  t  j	 d  d	 | q Wd  S(   Nt   AllFloati   i   i   RL   gV瞯<i   i   R   t   Complexy              ?y               @y              @(
   R(   t	   typecodesR   t   maxR-   R.   t   realR   R   t   sqrt(   R4   RL   R>   R   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt
   test_types^  s    "")""c         C` s,   t  d g d t } t t |  |  d  S(   Ng@xDRL   (   R   R
   R   R   (   R4   R5   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_overflowk  s    c         C` s|   t  d g d g d d t } y! t t |  d d d d Wn4 t k
 rw d } t t |  d d	 d
 | n Xd  S(   Ng     @i   i'  RL   g      ?R   g{Gz?sO   : Result should equal either 0.0 or 0.5 (depending on implementation of snrm2).g        R   (   R   R
   R   R   R   R   (   R4   R5   t   msg(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_stableq  s     !c         C` sB   t  t d d d g d  d  t  t d d d g d  d  d  S(   Ni   i    i   i   (   R   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_zero_norm~  s    c         C` s   t  j d d g d d g g g d d  } t t | d d d d g g d  t t | d d d d	 g d g d  d  S(
   Ni   i   i   i   t   dR   g5D+@g6f~@g      @(   R(   R   R   R   (   R4   R5   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_axis_kwd  s    +&s   1.10.0R   t    c         C` s   t  j d d g d d g g g d d  } t | d d d t } t | d d	 g g g d  t | j d k  t t | d d d d t d
 g d g g g d  d  S(   Ni   i   i   i   R  R   t   keepdimsg5D+@g6f~@g      @g      @(   i   i   i   (   R(   R   R   RW   R   R   R   (   R4   R5   R=   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_keepdims_kwd  s
    +(   RO   RP   R	  R
  R  R  R  R   R   t   skipifR'   R(   t   __version__R  (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR  \  s   					t   TestMatrixNormsc           B` sJ   e  Z d    Z d   Z e j j e e j	  d k  d d d    Z
 RS(   c   	   
   C` s~  t  j j d  xgd d d d d d f D]M\ } } x>t  j t  j t  j t  j t  j f D]} d t  j j | |  j	 |  } t  j
 | j t  j  r | d t  j j | |  j	 |  } t  j } n	 t  j } x d  d d d	 d
 d t  j t  j f D]s } t | d | } t  j j | d | } t  j | |  s t  j j | j	 |  d | } t | |  q q WqZ Wq) Wd  S(   Ni  i   i   i   i   i
   y              $@t   froii   it   ord(   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R(   R   Ri   t   singlet   doublet   csinglet   cdoublet   int64R   R   t
   issubdtypeRL   t   complexfloatingR   t   infR   R   t   allcloseR   (	   R4   Rs   R   t   tRt   t   t_hight   ordert   actualt   desired(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_matrix_norms  s    %+"&	,!c         C` s  t  j d d g d d g g g d d  } t | d t  j d d	 } t t  j | d d  d t  j d d
 } t | d d d d } t | |  t | |  t | |  t | j | j k o | j k n  t | d d d d } t t  j | d d  d d d d } t | d t  j d d } t | |  t | |  t | |  t | j | j k o|| j k n  d  S(   Ni   i   i   i   R  R  R   i    (   i   i    (   i    i   (   i    i   (   i   i    (   i    i   (   i    i   (   R(   R   R   R  t   swapaxesR   R   R   (   R4   R5   R=   t   cR  (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR    s    +*)'s   1.10.0R   R  c         C` s   t  j d d d j d d d d  } t | d t  j d	 d d t } t | d d
 d	 d d t } t | |  t | j | j k  d  S(   Nix   RL   R  i   i   i   i   R  R   i   i    R  (   i   i    (   i    i   (	   R(   R   R3   R   R  RW   R   R   R   (   R4   R5   R=   R(  (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR    s
    '!(   RO   RP   R&  R  R   R   R  R'   R(   R  R  (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR    s   		t   TestOverwritec           B` sb   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z RS(
   c         C` s   t  t d d g  d  S(   Ni   (   i   i   (   i   (   R&   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt
   test_solve  s    c         C` s   t  t d d g  d  S(   Ni   (   i   i   (   i   (   R&   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_solve_triangular  s    c         C` s   t  d   d d g  d  S(   Nc         S` s   t  d |  |  S(   Ni   i   (   i   i   (   R   (   R6   R=   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   <lambda>  s    i   i   (   i   i   (   i   (   R&   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_solve_banded  s    	c         C` s   t  t d d g  d  S(   Ni   i   (   i   i   (   i   (   R&   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_solveh_banded  s    c         C` s   t  t d g  d  S(   Ni   (   i   i   (   R&   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_inv  s    c         C` s   t  t d g  d  S(   Ni   (   i   i   (   R&   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_det  s    c         C` s   t  t d d g  d  S(   Ni   i   (   i   i   (   i   (   R&   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt
   test_lstsq  s    c         C` s   t  t d g  d  S(   Ni   (   i   i   (   R&   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt	   test_pinv  s    c         C` s   t  t d g  d  S(   Ni   (   i   i   (   R&   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt
   test_pinv2  s    c         C` s   t  t d g  d  S(   Ni   (   i   i   (   R&   R   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt
   test_pinvh  s    (   RO   RP   R*  R+  R-  R.  R/  R0  R1  R2  R3  R4  (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR)    s   									t   TestSolveCirculantc           B` sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C` sk   t  j d d d d g  } t  j d d d d g  } t | |  } t t |  |  } t | |  d  S(   Ni   i   i   i   ii    (   R(   R   R   R   R    R   (   R4   R(  R=   R>   t   y(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_basic1  s
    c         C` sk   t  j d d d d g  } t  j d  j d d  } t | |  } t t |  |  } t | |  d  S(   Ni   i   iii   i   i   (   R(   R   R   R3   R   R   R    R   (   R4   R(  R=   R>   R6  (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_basic2  s
    c         C` sn   t  j d d d d g  } t  j d  j d d d  } t | |  } t t |  |  } t | |  d  S(   Ni   i   iii   i   i   (   R(   R   R   R3   R   R   R    R   (   R4   R(  R=   R>   R6  (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_basic3  s
    c         C` so   t  j d
 d d d g  } t  j d  j d d  d	 } t | |  } t t |  |  } t | |  d  S(   Ni   y               @iy              @i   i   i   i   y              ?y      ?       @(   R(   R   R   R3   R   R   R    R   (   R4   R(  R=   R>   R6  (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR@     s
    c         C` si   t  j j d  t  j j d  } t  j j d  } t | |  } t t |  |  } t | |  d  S(   Ni1  i2   (   R(   R   Ri   R   R   R   R    R   (   R4   R(  R=   R>   R6  (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_random_b_and_c  s    c         C` s   t  j d d d d g  } t  j d d d d g  } t | | d d } t t |  |  \ } } } } t | |  t t t | |  d  S(   Ni   i    i   i   i   t   singularR   (   R(   R   R   R   R    R   RG   R!   (   R4   R(  R=   R>   R6  R   t   rnkR   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_singular  s    !c         C` s  t  j d d d d g g d d d d g g g  } t  j d d d d g d d d d g d d d d g g  } t | | d	 d } t | j d  t  j |  } t t | d  | j  | d  d   d d  d   f <t t | d  | j  | d  d   d d  d   f <t	 | |  t | | d	 d d d } t | j d  t	 t  j
 | d  |  t t  j | d d  | j d d } t | j d  t	 | |  d  S(   Nig      @i   g      @i   i   g      @i    t   baxisi   i   t   outaxist   caxis(   i   i   i   (   i   i   i   (   i   i   i   (   R(   R   R   R   R   t
   empty_likeR   R    R   R   t   rollaxisR'  (   R4   R(  R=   R>   RS   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_axis_args  s    3<55'c         C` sY   d d d d g } d d d d g } t  | |  } t t |  |  } t | |  d  S(   Ni   i   i   i   ii    (   R   R   R    R   (   R4   R(  R=   R>   R6  (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRN   -  s
    (
   RO   RP   R7  R8  R9  R@   R:  R=  RC  RN   (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyR5    s   									t   TestMatrix_Balancec           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  t t d  d  S(   Ns   Some string for fail(   RG   RH   R#   (   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_string_arg8  s    c         C` s`   t  t t t j d d g d t j g g   t  t t t j d d g d t j g g   d  S(   Ni   i   i   (   RG   RH   R#   R(   R   R  t   nan(   R4   (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_infnan_arg;  s    	%	c         C` s_   t  t j d d g d d g g   \ } } t t t j t j t j |     d  d  S(   Ni  i   i    i   (   R#   R(   R   R   t   intt   difft   log2RA   (   R4   t   _R6  (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_scalingA  s    -c         C` sh   t  j d d d g d d d g d d d g g  } t |  \ } } t t | |  j |  |  d  S(   Ni   i    g-C6?g{Gz?g     @g      Y@(   R(   R   R#   R   R   R   (   R4   Rt   R>   R6  (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_scaling_orderH  s    3c         C` sx   t  t j d d g d d g g  d d \ } \ } } t t t j t j |    d  t | t j d   d  S(   Ni  i   i    t   separatei   i   (	   R#   R(   R   R   RH  RI  RJ  R   R   (   R4   RK  R6  t   z(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_separateM  s    $%c      
   C` s   t  t j d	  t j t j d
   t j d   } t | d d \ } \ } } t | t j |   t | t j d d d d d d d g   d  S(   Ni   i   RN  i   i    i   i   i   (   i   i   (   i   i   (   i   i   (   R"   R(   R   R   R#   R   t	   ones_likeR   (   R4   Rt   R>   R6  RO  (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_permutationS  s
    $c      
   C` s  t  j d d d d d g d d d d d g d d d d d g d d d d d g d d d d d g g  t  j d d d d g d d d d g d d d d g d d d d g g  t  j d d d d g d d d d g d d d d g d d d d g g  f } x | D] } t |  \ } } t | d	 d
 \ } \ } } t  j |  } t  j | j d  | | <t | t  j |  | d  d   f  t t | |  j	 |  |  qWd  S(   Ng        g>g       @g      g      g      ?g      g       RN  i   i    (
   R(   R   R#   RA  R   R   R   RA   R   R   (   R4   t   casesRt   R>   R6  R   t   pt   ip(    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   test_perm_and_scalingZ  s(    &(	   RO   RP   RE  RG  RL  RM  RP  RR  RV  (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyRD  6  s   						(S   t   __doc__t
   __future__R    R   R   R   R   t   numpyR(   R   R   R   R   R   R   R	   R
   t   numpy.linalgR   t   numpy.randomR   t   numpy.testingR   R   R   R   R   R   R   R   RG   t   scipy._lib._numpy_compatR   t   scipy.linalgR   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   t   scipy.linalg.basicR%   t   scipy.linalg._testutilsR&   t   scipy._lib._versionR'   t	   __usage__R*   R)   R   R   R,   R+   R   t   DTYPESR1   t   objectR2   RQ   Rh   R   R   R   R   R   R   R   R  R  R)  R5  RD  (    (    (    s<   lib/python2.7/site-packages/scipy/linalg/tests/test_basic.pyt   <module>   sL   :.p
	
 < *+&	 c2!40!U