
Ee]c           @` sQ  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 Z d d l	 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 m Z m Z m Z m Z d d l m Z d d l m Z m Z m Z m Z 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+ d
   Z, e( Z- d d d  Z( d   Z. d   Z/ d   Z0 d d d d d d h Z1 d e2 f d     YZ3 d   Z4 e j5 j6 d  g  Z7 e7 e4 d e3 d e d d g d d g g d  e e d d g d  e  e3 d! e d d g d d g g d  e e d d g d  e  e3 d" e d d g d d g g d  e e d d d g d d d# g g d  e  e3 d$ e d d g d d g g d  e e d d g d  e  e3 d- e d d g d d g g d  e e d d g d  e  e3 d. e d d g d d g g d  e e d d d g d d d g g d  e  e3 d1 e j8 d d  e e j8 d d  e d2 d h e3 d3 e j5 j9 d4 d4  e j5 j9 d4   e3 d5 e j5 j9 d/ d/  e j5 j9 d/   e3 d6 d/ d& g d( d* g g d& d/ g  g
  7Z7 e7 e4 d e3 d7 e d d d g d d d# g g d  e e d d g d  e  e3 d8 e d d g d d g d9 d# g g d  e e d d d g d  e  e3 d: e d d d g d d d# g g d  e e d d g d  e  e3 d; e d d g d d g d9 d# g g d  e e d d d g d  e  e3 d< e d d d g d d d g g d  e e d d g d  e  e3 d> e d d g d d g d d g g d  e e d d d g d  e  e3 d@ e d d d g d d d g g d  e e d d g d  e  e3 dA e d d g d d g d d g g d  e e d d d g d  e  e3 dB e d d d g d d d g g d  e e d d g d d g g d  e  e3 dC e d d g ddg ddg g d  e e ddg ddg d	d
g g d  e  e3 dD e j5 j9 d4 dE  e j5 j9 d4   e3 dF e j5 j9 d/ dG  e j5 j9 d/   e3 dH e j5 j9 dG d/  e j5 j9 dG   e3 dI e j5 j9 d d*  e j5 j9 d  d2 d h e3 dJ e j5 j9 d* d  e j5 j9 d*  d2 d h g  7Z7 e7 e4 d e3 dK e d d g d d g g d  e d  e3 dL e d d g d d g g d  e d  e3 dM e d dg dd/ g g d  e d  e3 dN e d dg dd/ g g d  e d  e3 dO e j8 dd  e d d2 d h e3 dP d/ d& g d& d/ g g d  e3 dQ e d d g d d g g  d  e3 dR e j5 j9 d/ d/  d  g  7Z7 dS   Z; e7 e;   7Z7 dT   Z< dU   Z= e7 e=   7Z7 dV e2 f dW     YZ> dX e> f dY     YZ? dZ e> f d[     YZ@ d\ e> f d]     YZA d^ e> f d_     YZB d` e> f da     YZC db e> f dc     YZD dd   ZE de   ZF df e? eB f dg     YZG dh eG f di     YZH dj e? eB f dk     YZI dl eI f dm     YZJ dn e? eB f do     YZK dp eK f dq     YZL dr e? eB f ds     YZM dt eM f du     YZN dv e? eB f dw     YZO dx eO f dy     YZP dz e? eB f d{     YZQ d| eQ f d}     YZR d~ e? e@ eB eC f d     YZS d eS f d     YZT d e? eB f d     YZU d eU f d     YZV d e? e@ f d     YZW d eW f d     YZX e jY jZ d g  d D] Z[ e j\ e[  ^ q" d e2 f d     Y Z] d eA eD f d     YZ^ d e2 f d     YZ_ d eA eD f d     YZ` d e2 f d     YZa d e2 f d     YZb d eb f d     YZc d eb f d     YZd d ed ec f d     YZe d e2 f d     YZf d eb f d     YZg d eb f d     YZh d eb f d     YZi d ee eg f d     YZj d ee eh f d     YZk d ee ei f d     YZl d e2 f d     YZm d   Zn d e2 f d     YZo d e2 f d     YZp d   Zq d   Zr d   Zs d   Zt d e2 f d     YZu d e2 f d     YZv d S(  s#    Test functions for linalg module

i    (   t   divisiont   absolute_importt   print_functionN(   t   arrayt   singlet   doublet   csinglet   cdoublet   dott   identityt   matmul(   t   multiplyt
   atleast_2dt   inft   asarray(   t   linalg(   t   matrix_powert   normt   matrix_rankt	   multi_dott   LinAlgError(   t   _multi_dot_matrix_chain_order(   t   assert_t   assert_equalt   assert_raisest   assert_array_equalt   assert_almost_equalt   assert_allcloset   suppress_warningst   assert_raises_regexc         C` s1   t  |   t | t j  r' t  |  n t j k S(   N(   t   typet
   isinstancet   npt   ndarray(   t   outt   in_(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   consistent_subclass   s    'i   i   c         K` sG   t  |   j j t t f k r' | } n | } t |  | d | | d  S(   Nt   decimal(   R   t   dtypeR   R   R   t   old_assert_almost_equal(   t   at   bt   single_decimalt   double_decimalt   kwR%   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   %   s    	c         C` s$   i t  t  6t t 6t  t 6t t 6|  S(   N(   R   R   R   R   (   R&   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   get_real_dtype-   s    c         C` s$   i t  t 6t t 6t  t  6t t 6|  S(   N(   R   R   R   R   (   R&   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   get_complex_dtype2   s    c         C` s   |  t  t f k r d Sd Sd  S(   Ngh㈵>gdy=(   R   R   (   R&   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   get_rtol7   s    t   squaret	   nonsquaret	   hermitiant   generalizeds   size-0t   stridedt
   LinalgCasec           B` s)   e  Z e   d   Z d   Z d   Z RS(   c         C` sA   t  t | t   | |  _ | |  _ | |  _ t |  |  _ d S(   s   
        A bundle of arguments to be passed to a test case, with an identifying
        name, the operands a and b, and a set of tags to filter the tests
        N(   R   R   t   strt   nameR(   R)   t	   frozensett   tags(   t   selfR7   R(   R)   R9   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   __init__G   s
    			c         C` s    | |  j  |  j d |  j d S(   sN   
        Run the function `do` on this test case, expanding arguments
        R9   N(   R(   R)   R9   (   R:   t   do(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   checkR   s    c         C` s   d |  j  f S(   Ns   <LinalgCase: %s>(   R7   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   __repr__X   s    (   t   __name__t
   __module__t   setR;   R=   R>   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR5   F   s   	c         C` s@   |  t  k s t d   x! | D] } | j |  h B| _ q W| S(   s^   
    Add the given tag (a string) to each of the cases (a list of LinalgCase
    objects)
    s   Invalid tag(   t   all_tagst   AssertionErrorR9   (   t   tagt   casest   case(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt	   apply_tag\   s    i  R   g      ?g       @g      @g      @R&   R   t   double_2g      @R   y               @i   y              @i   y              @i   y              @y              ?R   t	   cdouble_2i   y              @t   0x0R9   t   8x8i   t   1x1t   nonarrayt   single_nsq_1t   single_nsq_2g      @t   double_nsq_1t   double_nsq_2t   csingle_nsq_1y              "@t   csingle_nsq_2y               @t   cdouble_nsq_1t   cdouble_nsq_2t   cdouble_nsq_1_2t   cdouble_nsq_2_2t   8x11i   t   1x5i   t   5x1t   0x4t   4x0t   hsinglet   hdoublet   hcsinglet   hcdoublet   hemptyt	   hnonarrayt   matrix_b_onlyt   hmatrix_1x1c          C` s  g  }  xwt  D]o} t | j t j  s. q n  t j | j d | j d | j g  } | j d  k ro d  } n) t j | j d | j d | j g  } t | j	 d | | d | j
 d h B} |  j |  t j | j g d d  j d	 | j j  } | j d  k rd  } n0 t j | j g d d  j d
 | j j  } t | j	 d | | d | j
 d h B} |  j |  q W|  S(   Ni   i   i   i   t   _tile3R9   R3   t   _tile213(   i   i   (   i   i   (   t   CASESR   R(   R    R!   R   R)   t   NoneR5   R7   R9   t   appendt   reshapet   shape(   t	   new_casesRF   R(   R)   t   new_case(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   _make_generalized_cases   s&    )	)0	0c         c` s  t  |  t j  s! |  d f Vd Sd g |  j } d | d <|  j d k rW d | d <n  |  j d k rs d | d	 <n  xRt j t |    D];} g  t |  j |  D] \ } } t	 | |  ^ q } t g  | D] } t
 d d |  ^ q  } t j | d
 |  j } | j t j  j d  | | } |  | d <| j |  j  } t t j | |  k   | d d j g  | D] }	 d |	 ^ qr f V|  j d k r|  j d d k rt |  j  }
 d |
 d <t j j j |  d |
 } | d f Vn  |  j d k rV|  j d d k rVt |  j  }
 d |
 d <t j j j |  d |
 } | d f Vn  |  j d k r |  j d  d k r t |  j  }
 d |
 d <d |
 d <t j j j |  d |
 } | d f Vq q Wd S(   s<   
    Generate cartesian product of strides for all axes
    t   nopNi   i   iiii   iR&   Iﾭ    .t   stride_t   _s   %+di    t   stridest   stride_xxx_0t   stride_xxx_0_xt   stride_xxx_0_0(   i   (   i   i   i(   i   i   i(   i   i(   i   i   (   R   R    R!   t   ndimt	   itertoolst   productt   tuplet   zipRk   t   abst   sliceRh   t   emptyR&   t   viewt   uint32t   fillt	   __class__R   t   allt   joint   listRr   t   libt   stride_trickst
   as_strided(   t   xt
   stride_sett   repeatsR(   R)   t	   new_shapet   repeatt   slicest   xit   jt   s(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   _stride_comb_iter  sF    
5+

/"
"
"

c       
   C` s   g  }  x t  D] } x t | j  D]n \ } } x_ t | j  D]N \ } } t | j d | d | | | d | j d h B} |  j |  q? Wq# Wq W|  S(   NRq   R9   R4   (   Rg   R   R(   R)   R5   R7   R9   Ri   (   Rl   RF   R(   t   a_labelR)   t   b_labelRm   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   _make_strided_cases>  s    "t   LinalgTestCasec           B` s#   e  Z e Z e   e   d   Z RS(   c         C` s   x |  j  D] } | j | @| k r) q
 n  | j | @r< q
 n  y | j |  j  Wq
 t k
 r d | } | t j   7} t |   q
 Xq
 Wd S(   sx   
        Run func on each of the cases with all of the tags in require, and none
        of the tags in exclude
        s   In test case: %r

N(   t
   TEST_CASESR9   R=   R<   t	   Exceptiont	   tracebackt
   format_excRC   (   R:   t   requiret   excludeRF   t   msg(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   check_casesR  s    
(   R?   R@   Rg   R   RA   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   O  s   t   LinalgSquareTestCasec           B` s   e  Z d    Z d   Z RS(   c         C` s#   |  j  d d h d d d h  d  S(   NR   R0   R   R3   s   size-0(   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_sq_casesh  s    c         C` s#   |  j  d d d h d d h  d  S(   NR   R0   s   size-0R   R3   (   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_empty_sq_casesl  s    (   R?   R@   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   f  s   	t   LinalgNonsquareTestCasec           B` s   e  Z d    Z d   Z RS(   c         C` s#   |  j  d d h d d d h  d  S(   NR   R1   R   R3   s   size-0(   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_nonsq_casess  s    c         C` s#   |  j  d d d h d d h  d  S(   NR   R1   s   size-0R   R3   (   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_empty_nonsq_casesw  s    (   R?   R@   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   q  s   	t   HermitianTestCasec           B` s   e  Z d    Z d   Z RS(   c         C` s#   |  j  d d h d d d h  d  S(   NR   R2   R   R3   s   size-0(   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_herm_cases~  s    c         C` s#   |  j  d d d h d d h  d  S(   NR   R2   s   size-0R   R3   (   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_empty_herm_cases  s    (   R?   R@   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   |  s   	t   LinalgGeneralizedSquareTestCasec           B` s2   e  Z e j j d     Z e j j d    Z RS(   c         C` s#   |  j  d d d h d d h  d  S(   NR   R3   R0   R   s   size-0(   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_generalized_sq_cases  s    c         C` s   |  j  d d d d h  d  S(   NR   R3   R0   s   size-0(   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_generalized_empty_sq_cases  s    (   R?   R@   t   pytestt   markt   slowR   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   t"   LinalgGeneralizedNonsquareTestCasec           B` s2   e  Z e j j d     Z e j j d    Z RS(   c         C` s#   |  j  d d d h d d h  d  S(   NR   R3   R1   R   s   size-0(   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_generalized_nonsq_cases  s    c         C` s   |  j  d d d d h  d  S(   NR   R3   R1   s   size-0(   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt"   test_generalized_empty_nonsq_cases  s    (   R?   R@   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   t   HermitianGeneralizedTestCasec           B` s2   e  Z e j j d     Z e j j d    Z RS(   c         C` s#   |  j  d d d h d d h  d  S(   NR   R3   R2   R   s   size-0(   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_generalized_herm_cases  s    c         C` s&   |  j  d d d d h d d h  d  S(   NR   R3   R2   s   size-0R   t   none(   R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt!   test_generalized_empty_herm_cases  s    (   R?   R@   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   c         C` s   t  |   }  |  j d k r |  j | j k rH |  j d  | j d } n2 |  j | j d k rn |  j d  } n t d   t j | d t j |  |  } xB t j t	 t
 |  j d     D]! } t |  | | |  | | <q W| St |  |  Sd  S(   Ni   ii   s   Not implemented...R&   i(   R   Rv   Rk   t
   ValueErrorR    R}   t   common_typeRw   Rx   t   mapt   rangeR   (   R(   R)   R   t   rt   c(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   dot_generalized  s    !&c         C` sf   t  |   }  |  j d k rQ t j |  j d |  j } t |  j d  | d <| St |  j d  Sd  S(   Ni   R&   i.i    (   R   Rv   R    R}   Rk   R&   R	   (   R(   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   identity_like_generalized  s    t
   SolveCasesc           B` s   e  Z d    Z RS(   c         C` s?   t  j | |  } t | t | |   t t | |   d  S(   N(   R   t   solveR   R   R   R$   (   R:   R(   R)   R9   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<     s    (   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   t	   TestSolvec           B` sD   e  Z e j j d  e e e e g  d    Z	 d   Z
 d   Z RS(   R&   c         C` sG   t  j d d g d d g g d | } t t j | |  j |  d  S(   Ni   g      ?R&   (   R    R   R   R   R   R&   (   R:   R&   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt
   test_types  s    'c      	   C` s  d t  j f d     Y} t  j d  j d d d  } t  j d  j d d d  j |  } t j | |  d  d   d d  d  d   f } t j | d  d   d d  d d  f | d  d   d d  d  d   f  } t | |  t t	 | |   t
 t j t j | d  d   d d  d d  f |  t
 t t j | | d  d   d d  d  d   f  t  j d  j d d d  } t
 t t j | |  t
 t t j | d d !| d d ! t  j d  j d d  j |  } t j | |  d  d   d d  f } t j | d  d   d d  d d  f | d  d   d d  f  } t | |  t t	 | |   t  j d  j d d  } t
 t t j | |  t
 t t j | d d !| d d ! t
 t t j | d  d   d d  d d  f |  d  S(	   Nt   ArraySubclassc           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   i   i   i   i   i   i    (   R    R!   t   arangeRj   R~   R   R   R   R   R   R   R   R   (   R:   R   R(   R)   t   expectedt   result(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_0_size  s*    '1P85$$(G$c         C` s  d t  j f d     Y} t  j d  j d d d  } t  j d  j d d d  j |  } t j | |  d  d   d  d   d d  f } t j | | d  d   d  d   d d  f  } t | |  t t	 | |   t j | |  d  d   d d  d d  f } t j | d  d   d d  d d  f | d  d   d d  d d  f  } t | |  t t	 | |   d  S(	   NR   c           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   i   i   i   i   i   i    (
   R    R!   R   Rj   R~   R   R   R   R   R   (   R:   R   R(   R)   R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_0_size_k  s    '111P(   R?   R@   R   R   t   parametrizeR   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   *	!t   InvCasesc           B` s   e  Z d    Z RS(   c         C` sB   t  j |  } t t | |  t |   t t | |   d  S(   N(   R   t   invR   R   R   R   R$   (   R:   R(   R)   R9   t   a_inv(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<     s    (   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   t   TestInvc           B` s;   e  Z e j j d  e e e e g  d    Z	 d   Z
 RS(   R&   c         C` sD   t  j d d g d d g g d | } t t j |  j |  d  S(   Ni   g      ?R&   (   R    R   R   R   R   R&   (   R:   R&   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s    'c         C` s   d t  j f d     Y} t  j d d t  j j |  } t j |  } t | j j	 t  j
 k  t | j | j  t t | |   t  j d d t  j j |  } t j |  } t | j j	 t  j k  t | j | j  t t | |   d  S(   NR   c           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   i    i   R&   (   i    i   i   (   i    i    (   R    R!   t   zerost   int_R~   R   R   R   R&   R   t   float64R   Rk   R   t	   complex64(   R:   R   R(   t   res(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s    !!(   R?   R@   R   R   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   *t   EigvalsCasesc           B` s   e  Z d    Z RS(   c         C` s5   t  j |  } t  j |  \ } } t | |  d  S(   N(   R   t   eigvalst   eigR   (   R:   R(   R)   R9   t   evt   evaluest   evectors(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<   -  s    (   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   +  s   t   TestEigvalsc           B` s;   e  Z e j j d  e e e e g  d    Z	 d   Z
 RS(   R&   c         C` s   t  j d d g d d g g d | } t t j |  j |  t  j d d g d d g g d | } t t j |  j t |   d  S(   Ni   g      ?R&   i(   R    R   R   R   R   R&   R.   (   R:   R&   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   4  s    ''c         C` s   d t  j f d     Y} t  j d d t  j j |  } t j |  } t | j j	 t  j
 k  t d | j  t t | t  j   t  j d d t  j j |  } t j |  } t | j j	 t  j k  t d	 | j  t t | t  j   d  S(
   NR   c           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   =  s   i    i   R&   (   i    i   i   (   i    i   (   i    i    (   i    (   R    R!   R   R   R~   R   R   R   R&   R   R   R   Rk   R   R   (   R:   R   R(   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   ;  s    !!(   R?   R@   R   R   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   3  s   *t   EigCasesc           B` s   e  Z d    Z RS(   c         C` sz   t  j |  \ } } t t | |  t j |  t j |  d d  d  d   f d t | j  t	 t
 | |   d  S(   N.t   rtol(   R   R   R   R   R    R   Rh   R/   R&   R   R$   (   R:   R(   R)   R9   R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<   P  s
    /(   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   N  s   t   TestEigc           B` s;   e  Z e j j d  e e e e g  d    Z	 d   Z
 RS(   R&   c         C` s   t  j d d g d d g g d | } t  j j |  \ } } t | j |  t | j |  t  j d d g d d g g d | } t  j j |  \ } } t | j t |   t | j t |   d  S(   Ni   g      ?R&   i(   R    R   R   R   R   R&   R.   (   R:   R&   R   t   wt   v(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   Y  s    ''c         C` s_  d t  j f d     Y} t  j d d t  j j |  } t j |  \ } } t | j j	 t  j
 k  t | j j	 t  j
 k  t | j | j  t d | j  t t | t  j   t  j d d t  j j |  } t j |  \ } } t | j j	 t  j k  t | j j	 t  j k  t | j | j  t d	 | j  t t | t  j   d  S(
   NR   c           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   g  s   i    i   R&   (   i    i   i   (   i    i   (   i    i    (   i    (   R    R!   R   R   R~   R   R   R   R&   R   R   R   Rk   R   R   (   R:   R   R(   R   t   res_v(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   e  s    !!(   R?   R@   R   R   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   X  s   *t   SVDCasesc           B` s   e  Z d    Z RS(   c      	   C` s   t  j | d  \ } } } t | t t j |  t j |  d d  d  d   f t j |   d t | j  t	 t
 | |   t	 t
 | |   d  S(   Ni    .R   (   R   t   svdR   R   R    R   Rh   R/   R&   R   R$   (   R:   R(   R)   R9   t   uR   t   vt(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<   ~  s    5(   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   |  s   t   TestSVDc           B` s;   e  Z e j j d  e e e e g  d    Z	 d   Z
 RS(   R&   c         C` s   t  j d d g d d g g d | } t j |  \ } } } t | j |  t | j t |   t | j |  t j | d t } t | j t |   d  S(   Ni   g      ?R&   t
   compute_uv(   R    R   R   R   R   R&   R-   t   False(   R:   R&   R   R   R   t   vh(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s    'c         C` s   t  j d  } t j | d t \ } } } t | j d  t | j d  t | t  j d   t  j d  } t j | d t \ } } } t | j d	  t | j d
  t | t  j d   d S(   s6    Empty input should put an identity matrix in u or vh i   i    R   N(   i   i    (   i   i   (   i    i    (   i    i   (   i    i    (   i   i   (   R    R}   R   R   t   TrueR   Rk   t   eye(   R:   R   R   R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_empty_identity  s    (   R?   R@   R   R   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   *
t	   CondCasesc           B` s   e  Z d    Z RS(   c         C` s  t  |  } d | k r/ t t t j |  d  St j | d t } t t j |  | d | d d d d d	 t t j | d
  | d | d d d d d	 t t j | d  | d | d d d d d	 t j j	 |  } t t j | d  t
 |  j d  j d  t
 |  j d  j d  d d d d	 t t j | d  t
 |  j d  j d  t
 |  j d  j d  d d d d	 t t j | t j  t
 |  j d  j d  t
 |  j d  j d  d d d d	 t t j | t j  t
 |  j d  j d  t
 |  j d  j d  d d d d	 t t j | d  t j t
 |  d
 j d  j d  t
 |  d
 j d  j d   d d d d	 d  S(   Ns   size-0R   .i    iR*   i   R+   i   i   ii   t   fro(   .i    (   .i(   .i    (   .i(   .i(   .i    (   R   R   R   R   t   condR   R   R   R    R   R{   t   sumt   maxt   minR   t   sqrt(   R:   R(   R)   R9   R   R   t   cinv(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<     sH    !!::::%&(   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   t   TestCondc           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  } t t j | t  d  t t j | t  d  t t j | d  d  t t j | d	  d
  t t j | d  t j d   d  S(   Ng      ?i    i   g       g      @i   i   i   ig      ?R   i	  i   gUUUUUU?gUUUUU6@(   R   R   R   R   R   R    R   (   R:   t   A(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_basic_nonsvd  s    0c         C` s   t  j d  t  j d  g } d  d d d g } d d g } x< t j | |  D]( \ } } t t j | |  d k  qO Wx0 t j | |  D] \ } } t j | |  q Wd  S(	   Ni   i   R   iig  4&kC(   i   i   (   i   i   (	   R    R   t   onesRh   Rw   Rx   R   R   R   (   R:   t   Ast   p_post   p_negR   t   p(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_singular  s     c         C` sS  d  d d d d d g } d  d d d g } t j d	  } t j | d
 <xI | D]A } t j | |  } t t | t j   t t j	 |   qM Wt j d  } t j | d <x | D] } t j | |  } t t j	 | d   | | k rt | d d k  t | d d k  q t t j	 | d   t t j	 | d   q Wd  S(   Ni   ii   iR   i    i   g  4&kC(   i   i   (   i    i   (   i   i   i   (   i   i    i   (
   Rh   R    R   t   nanR   R   R   R   t   float_t   isnan(   R:   t   psR   R   R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_nan  s$    c         C` s   t  j j d  t  j j d d d d  } d | d <d | d	 <xv d
 D]n } t j | |  } t | d t  j  t | d t  j  t	 t  j
 | d   t	 t  j
 | d   qF Wd  S(   Ni  i   i    i   R   ii(   i    i    (   i   i   (   Ni   i   R   ii(   i    i    (   i   i   (   i    i   (   i   i    (   R    t   randomt   seedt   randRh   R   R   R   R   R   t   isfinite(   R:   R   R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_stacked_singular  s    

(   R?   R@   R   R   R   R  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   				t	   PinvCasesc           B` s   e  Z d    Z RS(   c         C` sW   t  j |  } t } t | | | |  |  | d d d d t t | |   d  S(   NR*   i   R+   i   (   R   t   pinvR   R   R   R$   (   R:   R(   R)   R9   t   a_ginvR   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<     s    +(   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   t   TestPinvc           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   t   DetCasesc           B` s   e  Z d    Z RS(   c   
      C` s  t  j |  } t  j |  \ } } t |  j j t t f k rZ t |  j t  } n t |  j t	  } t  j
 |  } t | t j | d d  t | t j |  t j | d d  t j |  } t j |  } | d k }	 t t j | |	  d  t | |	 t  d  S(   Nt   axisii    i   (   R   t   dett   slogdetR   R&   R   R   R   t   astypeR   R   R   R   t   reduceR    t   expt
   atleast_1dR{   R   R   (
   R:   R(   R)   R9   t   dR   t   ldt   adR   t   m(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<   "  s    )(   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   t   TestDetc           B` sD   e  Z d    Z e j j d e e e e	 g  d    Z
 d   Z RS(   c         C` s^  t  t j d g g  d  t  t t j d g g   t  t  t j d g g  d  t  t t j d g g   t  t  t j d g g  d t f  t  t t j d g g  d  t  t  t t j d g g  d  t  t  t j d g g  d t f  t  t t j d g g  d  t  t  t t j d g g  d  t  d  S(   Ng        y                i    i   (   R   R   R	  R   R   R   R
  R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt	   test_zero5  s    ""#&&#&R&   c         C` s   t  j d d g d d g g d | } t t  j j |  j |  t  j j |  \ } } t | j t |   t | j |  d  S(   Ni   g      ?R&   (   R    R   R   R   R	  R&   R
  R-   (   R:   R&   R   t   phR   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   B  s
    'c         C` sJ  t  j d d t  j } t j |  } t | d  t | j j t  j k  t j	 |  } t | d  t | d j j t  j k  t | d j j t  j
 k  t  j d d t  j } t j |  } t | d  t | j j t  j k  t j	 |  } t | d  t | d j j t  j k  t | d j j t  j k  d  S(	   Ni    R&   g      ?i   (   i    i    (   i   i    (   i    i    (   i   i    (   R    R   R   R   R	  R   R   R&   R   R
  t   float32R   (   R:   R(   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   J  s     (   R?   R@   R  R   R   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR  4  s   	*t
   LstsqCasesc           B` s   e  Z d    Z RS(   c         C` s  t  j |  } | j \ } } t j | d  \ } } }	 t j | | d d \ }
 } } } | d k r t |
 d k j    n  | | k r t | t	 | |
   t
 | |  n t
 | |  t | | j |   | | k rm| | k rmt  j t t  j	 | |
  |   d j d d  } t  j |  } t  j |  j d k rd | _ t
 | j | j  qn t  j g   j t |
   } t | |  t t  j | j t  j   t t |
 |   t t | |   d  S(   Ni    t   rcondii   R  i   (   i   (   R    R   Rk   R   R   t   lstsqR   R   R   R   R   t   __array_wrap__R{   R   Rv   R   R~   R   t
   issubdtypeR&   t   floatingR$   (   R:   R(   R)   R9   t   arrR  t   nR   R   R   R   t	   residualst   rankt   svt   expect_resids(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<   `  s,    $5	(   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR  ^  s   t	   TestLstsqc           B` sV   e  Z d    Z e j j d d d g d
 d d d d d d g  d    Z d	   Z RS(   c   	   
   C` s[  t  j d d d d d d g d d d d d d g d d d d d d g d d d d d d g g  j } t  j d d d d d d g  } t    } | j t d  } t j | |  \ } } } } t | d	 k  t j | | d
 d \ } } } } t | d	 k  t j | | d
 d  \ } } } } t | d k  t t
 |  d k  Wd  QXd  S(   Ng        g      ?g       @g      @g      @i   i    s   `rcond` parameter will changei   R  ii   (   R    R   t   TR   t   recordt   FutureWarningR   R  R   Rh   t   len(	   R:   R(   R)   t   supR   R   R  R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_future_rcond}  s    !!$$R  R  t   n_rhsi   i   i    i   c         C` s<  t  j | |  j | |  } t  j | | f  } t j | | d d  \ } } } }	 | d k r} t | d k j    n  t	 | j
 | | f  t	 | j
 | | k r | f n d  | | k r| d k r| t  j | |  }
 t | |
 |
 j d d   n  t	 | t | |   t	 |	 j
 t | |  f  d  S(   NR  i    R  i(   i    (   R    R   Rj   R   R   R  Rh   R   R   R   Rk   R   R   R   R   (   R:   R  R  R*  R(   R)   R   R  R   R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_empty_a_b  s    
$% c      	   C` s   t  j d d d d g  } t  j d d d d d	 g  } t  j | t  j t |   g  j } t t d
   t j	 | | d d  Wd  QXd  S(   Ni    i   i   i   ig?g?g @gffffff
@s   Incompatible dimensionsR  (   R    R   t   vstackR   R'  R$  R   R   R   R  Rh   (   R:   R   t   yR   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_incompatible_dims  s
    '(   i   i   i   (   i    i   i   (   i    i   i   (   i   i    i   (   i   i    i   (   i   i   i    (   i    i    i    (   R?   R@   R)  R   R   R   R+  R.  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR#  |  s   	t   dts   ?bBhHiIqQefdgFDGOt   TestMatrixPowerc           B` s  e  Z e j d   Z e d d d d g Z e d d d d g Z e d d d d g Z e e e e g Z e	 d d g d d g g  Z
 e j e g g g d  Z e e j d  e j d  e j d  g Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z RS(   i   i   i    i   i   t   et   gt   Gc         C` s   |  j  j |  } t t | d d	 d
 d  |  j  t t | d d d d  |  j   t t | d d d d  |  j  t t | d d d d  |  j  d  S(   Ni   id   i
   i   i    i   i   l                i   i    l                i   i    l                i   i    l                i   i    (   t   rshft_1R  R   R   t   rshft_0t   rshft_2t   rshft_3(   R:   R/  t   rshft(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_large_power  s    """c         C` sY   d   } xI |  j  D]> } | | j |   | t k r | |  j j |   q q Wd  S(   Nc         S` s9   t  |  d  } t | t |    t | j |  j  d  S(   Ni    (   R   R   R   R&   (   t   Mt   mz(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   tz  s    (   t	   rshft_allR  t   objectt   stacked(   R:   R/  R<  t   mat(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_power_is_zero  s
    	c         C` sY   d   } xI |  j  D]> } | | j |   | t k r | |  j j |   q q Wd  S(   Nc         S` s3   t  |  d  } t | |   t | j |  j  d  S(   Ni   (   R   R   R&   (   R@  R;  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<    s    (   R=  R  R>  R?  (   R:   R/  R<  R@  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_power_is_one  s
    	c         C` sY   d   } xI |  j  D]> } | | j |   | t k r | |  j j |   q q Wd  S(   Nc         S` sW   t  |  d  } |  j t k r$ t n t } t | | |  |    t | j |  j  d  S(   Ni   (   R   R&   R>  R
   R   R   (   R@  R;  t   mmul(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<    s    (   R=  R  R>  R?  (   R:   R/  R<  R@  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_power_is_two  s
    	c         C` sF   d   } x6 |  j  D]+ } | |  j k r | | j |   q q Wd  S(   Nc         S` sJ   t  |  d  } |  j t k r$ t n t } t | | |   t |    d  S(   Ni(   R   R&   R>  R
   R   R   R   (   R@  t   invmatRC  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<    s    (   R=  t   dtnoinvR  (   R:   R/  R<  R@  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_power_is_minus_one  s    	c         C` s?   |  j  j |  } t t t | d  t t t | d g  d  S(   Ng      ?i   (   R5  R  R   t	   TypeErrorR   (   R:   R/  R@  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_exceptions_bad_power  s    c         C` sp   t  t t t j d g |  d  t  t t t j d g d g g |  d  t  t t t j d |  d  d  S(   Ni   i   i   i   (   i   i   i   (   R   R   R   R    R   R   (   R:   R/  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_exceptions_non_square  s    "+c         C` s<   | |  j  k r d  S|  j j |  } t t t | d  d  S(   Ni(   RF  t   noninvR  R   R   R   (   R:   R/  R@  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_exceptions_not_invertible  s    (   R?   R@   R    R   R5  R4  R6  R7  R=  R   RK  t   blockR?  R>  R&   RF  R9  RA  RB  RD  RG  RI  RJ  RL  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR0    s    -							t   TestEigvalshCasesc           B` s   e  Z d    Z RS(   c         C` s   t  j | d  } t  j |  \ } } | j d d  t | | d t | j  t  j | d  } t | | d t | j  d  S(   Nt   LR  iR   t   U(   R   t   eigvalshR   t   sortR   R/   R&   (   R:   R(   R)   R9   R   R   R   t   ev2(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<   	  s    (   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyRN    s   t   TestEigvalshc           B` sM   e  Z e j j d  e e e e g  d    Z	 d   Z
 d   Z d   Z RS(   R&   c         C` sS   t  j d d g d d g g d | } t  j j |  } t | j t |   d  S(   Ni   g      ?R&   (   R    R   R   RQ  R   R&   R-   (   R:   R&   R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s    'c         C` s|   t  j d d g d d g g d t  j } t t t  j j | d d t t t  j j | d  t t t  j j | d  d  S(   Ni   g      ?R&   t   UPLOt   lrongt   lowert   upper(   R    R   R  R   R   R   RQ  (   R:   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_invalid  s    *c         C` sV  t  j d d g d d g g d t  j } t  j d d g d d g g d t  j } t  j d d g d t  j } t t  j  } t  j j |  } t | | d | t  j j | d d } t | | d | t  j j | d d } t | | d | t  j j | d d	 } t | | d | t  j j | d d
 } t | | d | d  S(   Ni    i   R&   iR   RU  RO  t   lRP  R   (   R    R   R   R/   R   RQ  R   (   R:   t   Klot   Kupt   tgtR   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt	   test_UPLO"  s    **c         C` s   d t  j f d     Y} t  j d d t  j j |  } t j |  } t | j j	 t  j
 k  t d | j  t t | t  j   t  j d d t  j j |  } t j |  } t | j j	 t  j k  t d	 | j  t t | t  j   d  S(
   NR   c           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   :  s   i    i   R&   (   i    i   i   (   i    i   (   i    i    (   i    (   R    R!   R   R   R~   R   RQ  R   R&   R   R   R   Rk   R   R   R  (   R:   R   R(   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   8  s    !!(   R?   R@   R   R   R   R   R   R   R   R   RY  R^  R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyRT    s   *		t   TestEighCasesc           B` s   e  Z d    Z RS(   c   
      C` s  t  j |  \ } } t  j |  \ } } | j d d  t | |  t t | |  t j |  d d  d  d   f t j |  d t
 | j  t  j | d  \ } }	 t | |  t t | |	  t j |  d d  d  d   f t j |	  d t
 | j  d t |  d  S(   NR  i.R   RP  t   err_msg(   R   t   eighR   RR  R   R   R   R    R   Rh   R/   R&   t   repr(
   R:   R(   R)   R9   R   t   evcR   R   RS  t   evc2(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR<   M  s    //(   R?   R@   R<   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR_  K  s   t   TestEighc           B` sM   e  Z e j j d  e e e e g  d    Z	 d   Z
 d   Z d   Z RS(   R&   c         C` si   t  j d d g d d g g d | } t  j j |  \ } } t | j t |   t | j |  d  S(   Ni   g      ?R&   (   R    R   R   Ra  R   R&   R-   (   R:   R&   R   R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR   b  s    'c         C` s|   t  j d d g d d g g d t  j } t t t  j j | d d t t t  j j | d  t t t  j j | d  d  S(   Ni   g      ?R&   RU  RV  RW  RX  (   R    R   R  R   R   R   Ra  (   R:   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyRY  i  s    *c         C` st  t  j d d g d d g g d t  j } t  j d d g d d g g d t  j } t  j d d g d t  j } t t  j  } t  j j |  \ } } t | | d | t  j j | d d \ } } t | | d | t  j j | d d \ } } t | | d | t  j j | d d	 \ } } t | | d | t  j j | d d
 \ } } t | | d | d  S(   Ni    i   R&   iR   RU  RO  RZ  RP  R   (   R    R   R   R/   R   Ra  R   (   R:   R[  R\  R]  R   R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR^  o  s    **c         C` s_  d t  j f d     Y} t  j d d t  j j |  } t j |  \ } } t | j j	 t  j
 k  t | j j	 t  j
 k  t | j | j  t d | j  t t | t  j   t  j d d t  j j |  } t j |  \ } } t | j j	 t  j k  t | j j	 t  j k  t | j | j  t d	 | j  t t | t  j   d  S(
   NR   c           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   i    i   R&   (   i    i   i   (   i    i   (   i    i    (   i    (   R    R!   R   R   R~   R   Ra  R   R&   R   R   R   Rk   R   R   R  (   R:   R   R(   R   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s    !!(   R?   R@   R   R   R   R   R   R   R   R   RY  R^  R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyRe  a  s   *		t   _TestNormBasec           B` s   e  Z d  Z d  Z RS(   N(   R?   R@   Rh   R/  t   dec(    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyRf    s   t   _TestNormGeneralc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` sa   t  t g   d  t  t t g  d |  j  d  t  t t t g  d |  j   d  d  S(   Ng        R&   (   R   R   R   R/  R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt
   test_empty  s    "c   	   	   C` sI  t  j d d d g  } t  j d } t  j d } | | } x| D]} | j |  } t | t  j  } t t | j j	 t  j
   t | d  t   O } | j t d  t | d  } t t | j j	 t  j
   t | d  Wd  QXt | d  } t t | j j	 t  j
   t | d  t | d  } t t | j j	 t  j
   t | d	  t | d  } t t | j j	 t  j
   t | | j j	 d	  | j j	 d   t | d  } t t | j j	 t  j
   t | | j j	 d	  | j j	 d   t | t  j  } t t | j j	 t  j
   t | d
  qC Wd  S(   Ni   i    t
   AllIntegert   AllFloatg        s   divide by zero encounteredii   g       @g      ?i   g      @g      ?g      ?(   R    R   t	   typecodesR  R   R   R   t
   issubclassR&   R   R  R   R   t   filtert   RuntimeWarning(	   R:   R(   t   exact_typest   inexact_typest	   all_typest   each_inexact_typest   att   anR(  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_vector_return_type  s:    
))c         ` s   d d d d g } d d d d g } d d d d g }   f d	   } x! | | | f D] } | |  qU WxN t  | d
   j t  | d
   j t  | d
   j f D] } | |  q Wd  S(   Ni   i   i   i   iiiic         ` s*  t  j j t |   d d   j t  j j t |  t  d d   j t  j j t |  t  d d   j t  j j t |  d  d d   j t  j j t |  d  d d   j t  j j t |  d  d d   j t  j j t |  d  d d   j t  j j t |  d  d d   j d  S(   Ni   g      ?R%   g      @g      ?i   g      $@ig      (@i   i   ig     i@i   g      i    i   g6ҭ@gQ?g6ҭ@grq?gsc?(   R    t   testingR   R   Rg  R   (   R   (   R:   (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   _test  s     






R&   (   R   R/  (   R:   R(   R)   R   Rx  R   (    (   R:   s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_vector  s    'c      
   C` s  t  d d d g d d d g g d |  j } x d  d d	 d d d t j t j g D] } g  t | j d  D]( } t | d  d   | f d
 | ^ qm } t t | d
 | d d	 |  g  t | j d	  D]( } t | | d  d   f d
 | ^ q } t t | d
 | d d |  qS Wt j	 d d d |  j j
 d d d  } | j } xd  d d d d t j t j d g D]_} xVt j t | |  d  D]8} | \ }	 }
 |	 d	 k  r|	 | 7}	 n  |
 d	 k  r|
 | 7}
 n  |	 |
 k r
t t t | d
 | d | qt | d
 | d | } | |	 |
 } |	 |
 k  rg  t | j |  D]( } t | j | d | d
 | ^ qP} nE g  t | j |  D]+ } t | j | d | j d
 | ^ q} t | |  qWqxWd  S(   Ni   i   i   i   i   i   R&   ii    t   ordR  i   iR   (   R   R/  Rh   R    t   InfR   Rk   R   R   R   Rj   Rv   Rw   t   combinationsR   R   t   takeR$  (   R:   R   t   ordert   kt	   expected0t	   expected1t   Bt   ndR  t   row_axist   col_axisR  t   k_indexR   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt	   test_axis  s2    -,BB#*	,#BBc   	   
   C` s  t  j d d d |  j j d d d  } d } d } t | d	 d  d
 d  } t | d	 d  d
 d  d t } t t  j |  | d | j	 d  d   d } t
 | j | k | j	 | j | d  d    x d  d d d d d t  j t  j g D] } x t | j  D] } t | d	 | d
 | } t | d	 | d
 | d t } t t  j |  | d | j	 | |  t | j  } d | | <t |  } t
 | j | k | j	 | j | | |   qWq Wxd  d d d d t  j t  j d d g	 D] } x t j t | j  d  D] } t | d	 | d
 | } t | d	 | d
 | d t } t t  j |  | d | j	 | |  t | j  } d | | d <d | | d <t |  } t
 | j | k | j	 | j | | |   qWqWd  S(   Ni   i   R&   i   i   i   s   order {0}, axis = {1}s;   Shape mismatch found {0}, expected {1}, order={2}, axis={3}Rz  R  t   keepdimsR`  ii    iR   t   nuc(   i   i   i   (   R    R   R/  Rj   R   Rh   R   R   t   squeezet   formatR   Rk   R{  R   Rv   R   Ry   Rw   t   permutations(	   R:   R   t   allclose_errt	   shape_errR   t   foundt   expected_shapeR~  R  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_keepdims  sB    *,
$/"(   R?   R@   Ri  Rv  Ry  R  R  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyRh    s
   		)		%t   _TestNorm2Dc           B` s>   e  Z e j Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` s,   t  t |  j g  g d |  j  d  d  S(   NR&   g        (   R   R   R   R/  (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_matrix_emptyD  s    c   	   	   C` sa  |  j  d d d g d d d g g  } t j d } d } | | } x| D]} | j |  } t | t j  } t t | j j	 t j
   t | d  t   O } | j t d  t | d  } t t | j j	 t j
   t | d  Wd  QXt | d  } t t | j j	 t j
   t | d  t | d	  } t t | j j	 t j
   t | d
 d  t | d  } t t | j j	 t j
   t | d  t | t j  } t t | j j	 t j
   t | d  t | d  } t t | j j	 t j
   t | d  t | d  } t t | j j	 t j
   t j j | d d d qK Wd  S(   Ni   i    Rj  t   fdFDg       @s   divide by zero encounteredig      ?i   g      @iR   R  gU&,t=@R%   i   g      ?(   R   R    Rl  R  R   R   R   Rm  R&   R   R  R   R   Rn  Ro  Rw  (	   R:   R(   Rp  Rq  Rr  Rs  Rt  Ru  R(  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_matrix_return_typeG  s@    '
c         C` s+  |  j  d d g d d g g d |  j } t t |  d  t t | d  d  t t | d	  d
  t t | t  d  t t | t  d  t t | d  d
  t t | d  d  t t | d  d  t t | d  d  t t t | d  t t t | d  t t t | d  d  S(   Ni   i   i   i   R&   iT   g      ?R   R  g      $@g      (@g      @ig      @i   gW?"@igїʄ?t   nofroii    gT"@gT"@(   R   R/  R   R   R   R   R   (   R:   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_matrix_2x2z  s    *c         C` s  d |  j  d d d g d d d g d d d g g d |  j } t t |  d d  t t | d  d d  t t | d  d  t t | t  d  t t | t  d  t t | d  d  t t | d  d  t t | d  d  t t | d  d  d  S(   Ni   i
   i   i   i   i    i   R&   iY   g      ?R   R  gB+pc?g?g333333?g      ?ig?g&.d?igܸՠ?g?g?gAb2"@g?gAb2"@(   R   R/  R   R   R   (   R:   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_matrix_3x3  s    =c         C` sc  |  j  d d d g d d d g g d |  j } t j d d d |  j j d d d  } t t t | d	 d
  t t t | d d
  t t t d d g d	 d   t t t d d g d d   xV d
 d g D]H } t t t | | d   t t t | | d  t t t | | d  q Wt t j	 t | d  d  t t j	 t | d  d  t t t | d  d  d  S(   Ni   i   i   i   i   i   R&   i   R   i    R  (   i    i   (   i   i   (   i   i   (   i    i   i   (
   R   R/  R    R   Rj   R   R   R   Rh   t	   AxisError(   R:   R   R  R~  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_bad_args  s    0*(	   R?   R@   R    R   R  R  R  R  R  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR  ?  s   			3		t	   _TestNormc           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   t   TestNorm_NonSystematicc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s;   t  j d d t  j } t t | d d d d d d  S(   Ni
   R&   Rz  i   gL)@R%   i   (   R    R   t
   longdoubleR'   R   (   R:   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_longdouble_norm  s    c         C` s>   t  j d	 g d t  j } t t | d d d
 d d d  S(   Ni   i   R&   Rz  i   R%   i   I       i   I       (   R    R   t   int32R'   R   (   R:   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_intmin  s    c         C` s   t  j d d t  j } d | d <d | d <d } t t  j j | d	 d
 | d d | j t  j  } t t  j j | d	 d
 | d d | j t  j  } t t  j j | d	 d
 | d d d  S(   Ni   R&   i   y              @i    ii   gV;'@Rz  i   R%   i
   i	   i   (   i   y      @      @y            @(	   R    R}   t   clongdoubleR'   R   R   R  t
   complex128R   (   R:   R  R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_complex_high_ord  s    

%%(   R?   R@   R  R  R  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   		t   _TestNormDoubleBasec           B` s   e  Z e j Z d  Z RS(   i   (   R?   R@   R    R   R/  Rg  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   	t   _TestNormSingleBasec           B` s   e  Z e j Z d  Z RS(   i   (   R?   R@   R    R  R/  Rg  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   	t   _TestNormInt64Basec           B` s   e  Z e j Z d  Z RS(   i   (   R?   R@   R    t   int64R/  Rg  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   	t   TestNormDoublec           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   t   TestNormSinglec           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   t   TestNormInt64c           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   t   TestMatrixRankc           B` s   e  Z d    Z d   Z RS(   c         C` s  t  d t t j d    t j d  } d | d <t  t |  d  t  t t j d   d  t  t d d d d g  d  t  t t j d	   d  t  t d g  d  t j | t j d  t j d
  g  } t  t |  t j d d d g   t  t d  d  d  S(   Ni   g        ii   i    i   (   ii(   i   i   (   i   (   i   i   (   R   R   R    R   R   R   (   R:   t   It   ms(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_matrix_rank  s    
*%c         C` s   t  d t t j d  d t  t  d t t j d  d t  t  d t t j d  d t  t j d  } d | d <t  d t | d t  d | d <t  d t | d t d	 d
  t  d t | d t d	 d  d  S(   Ni   R2   i   i    g        ii   g:0yE>t   tolg|"BE>g;䡈E>(   i   i   (   i   i   (   ii(   ii(   R   R   R    R   R   R   R   (   R:   R  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_symmetric_rank  s    """

(   R?   R@   R  R  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   	c          C` s   t  j j d  }  x t d  D] } |  j d d  } | d  d   d f | d  d   d f | d  d   d f <t t |  d	  | d  d   d
 f | d  d   d f | d  d   d f <t t |  d  q Wd  S(   Ni3id   t   sizei(   i
   i   i   i    i	   i   i   i   i   (   i(   i
   (   R    R   t   RandomStateR   t   normalR   R   (   t   rngt   it   X(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_reduced_rank  s    ::t   TestQRc           B` sY   e  Z e j Z d    Z e j j d d g d d	 d
 g  d    Z d   Z	 d   Z
 RS(   c         C` sY  t  |  } | j } | j \ } } t | |  } t j | d d \ } } t | j | k  t | j | k  t t | |   t t | |   t | j | | f k  t | j | | f k  t t	 | |  |  t t	 | j
 j   |  t j |   t t j |  |  t j | d d \ }	 }
 t |	 j | k  t |
 j | k  t t |	 |   t t |
 |   t |	 j | | f k  t |
 j | | f k  t t	 |	 |
  |  t t	 |	 j
 j   |	  t j |   t t j |
  |
  t j | d d } t | j | k  t t | |   t | |
  d  S(   Nt   modet   completet   reducedR   (   R   R&   Rk   R   R   t   qrR   R   R   R   R$  t   conjR    R   t   triu(   R:   R(   t   a_typet   a_dtypeR  R  R  t   qR   t   q1t   r1t   r2(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   check_qr&  s8    	((R  R  i   i    c         C` s   t  | |  } t j | | f  } |  j |  t j j | d d \ } } t | j t j  t | j t j  t | j	 | | f  t | j	 | f  d  S(   NR  t   raw(
   R   R    R}   R  R   R  R   R&   R   Rk   (   R:   R  R  R  R(   t   ht   tau(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_qr_emptyM  s    c         C` s  |  j  d d g d d g d d g g d t j } t j | d d	 \ } } t | j t j k  t | j t j k  t | j d
 k  t | j d k  t j | j d d	 \ } } t | j t j k  t | j t j k  t | j d k  t | j d k  d  S(   Ni   i   i   i   i   i   R&   R  R  (   i   i   (   i   (   i   i   (   i   (	   R   R    R   R   R  R   R&   Rk   R$  (   R:   R(   R  R  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_mode_raw^  s    3c         C` s  |  j  d d g d d g g  } |  j  d d g d d g d d g g  } xV d D]N } | j |  } | j |  } |  j |  |  j |  |  j | j  qR Wxf d D]^ } d d | j |  } d d | j |  } |  j |  |  j |  |  j | j  q Wd  S(	   Ni   i   i   i   i   i   t   fdy              ?(   R   R  R  R$  (   R:   R(   R)   R/  t   m1t   m2(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_mode_all_but_economict  s    !*(   i   i    (   i    i   (   i    i    (   R?   R@   R    R   R  R   R   R   R  R  R  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR  "  s   		'	t   TestCholeskyc           B` s   e  Z d    Z d   Z RS(   c   	   
   C` s  d d d d d g } t  j t  j t  j t  j f } xEt j | |  D]1\ } } t  j j d  t  j j	 |   } t  j
 | t  j  r | d t  j j	 |   } n  t t t |    } d | d )t  j | j |  j   |  } t  j | d	 | } t  j j |  } t  j | | j |  j    } t | | d
 d j | | | |  d d | j d t  j |  j qF Wd  S(   Ni   i   i   i2   i
   y              ?iiR&   R`  s   {} {}
{}
{}t   atoli  i    (   i   i   (   i   i   (   i   i   (   i2   i2   (   i   i
   i
   (   ii(   R    R  R   R   R  Rw   Rx   R   R   t   randnR  t   complexfloatingR   R   R'  R
   t	   transposeR  R   R   t   choleskyR   R  Rk   t   finfot   eps(	   R:   t   shapest   dtypesRk   R&   R(   t   tR   R)   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_basic_property  s     
!!c         C` s  d t  j f d     Y} t  j d d t  j j |  } t j |  } t | j | j  t	 | j
 j t  j k  t	 t | t  j   t  j d d t  j j |  } t j |  } t | j | j  t	 | j
 j t  j k  t	 t | t  j   d  S(   NR   c           B` s   e  Z RS(    (   R?   R@   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s   i    i   R&   (   i    i   i   (   i   i    i    (   R    R!   R   R   R~   R   R  R   Rk   R   R&   R   R   R   R   (   R:   R   R(   R   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR     s    !!(   R?   R@   R  R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR    s   	c          C` s   t  j d k r d }  n d }  x t j t j f D] } t j d d | } | j |   } | j d  j   } t | j	 j d  xR t
 j t
 j t
 j f D]8 } | |  } t | | |   t | | |   q Wq1 Wd  S(   Nt   littlet   <t   >i   R&   t   St   =(   t   syst	   byteorderR    R  R   R   t   newbyteordert   byteswapR   R&   R   R   R	  R  R   (   t   nativet   dttR  t   n_arrt   sw_arrt   routineR   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_byteorder_check  s    	c          C` s   t  j d d g d d g g  }  t  j d d g d d g g  } t  j d d d d g  d d  d  } |  | d <| | d <t t  j j t  j j |  d  S(   Ni   i   i   i   .i    (   i    i    (   R    R   R   R   R   R   R   (   t
   invertiblet   non_invertibleR   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt    test_generalized_raise_multiloop  s    !!(

c       
   C` s  d }  y t  j   } Wn$ t t f k
 r< t j d  n X| d k rYt  j d  t  j d  d d  l } | j | j	 d  y t
 j j j   Wn1 t k
 r n! t k
 r t  j t  j  n XyD t
 j d g g  } t
 j j j d d d | d | | d d 	 Wn5 t k
 rE} d t |  k rFt  j |   qFn Xt  j t  j  n7 t  j   \ } } t  j |  |  k rt j d  n  d  S(	   Ni   s   Not POSIX or fork failed.i    i   g      ?s   DORGQR parameter number 5s   Numpy xerbla not linked in.(   i    i    (   t   ost   forkt   OSErrort   AttributeErrorR   t   skipt   closet   resourcet	   setrlimitt   RLIMIT_CORER    R   t   lapack_litet   xerblaR   R   t   _exitt	   EX_CONFIGR   t   dorgqrR6   t   waitt   WEXITSTATUS(   t	   XERBLA_OKt   pidR  R(   R1  t   status(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_xerbla_override  s:    c          C` s   d d g }  t  j d  } x| |  D]t } | j d d d d d |  } t j t j d	 | g  | j d d d d d |  } t j t j d	 | g  q" Wd  S(
   Ns   PyQt5.QtWidgetst   IPythons   
    import sys
    {before}
    try:
        import {bad_lib}
    except ImportError:
        sys.exit(0)
    {after}
    x = np.ones(2, dtype=np.float32)
    sys.exit(0 if np.allclose(x.dot(x), 2.0) else 1)
    t   befores   import numpy as npt   aftert    t   bad_libs   -c(   t   textwrapt   dedentR  t
   subprocesst
   check_callR  t
   executable(   t   bad_libst   templateR  t   code(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_sdot_bug_8577  s    	
			t   TestMultiDotc           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  j j d  } t  j j d  } t  j j d  } t t | | | g  | j |  j |   t t | | | g  t  j | t  j | |    d  S(   Ni   i   (   i   i   (   i   i   (   i   i   (   R    R   R   R   R   (   R:   R   R  t   C(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt(   test_basic_function_with_three_arguments*  s
    .c         C` so   t  j j d  } t  j j d  } t t | | g  | j |   t t | | g  t  j | |   d  S(   Ni   i   (   i   i   (   i   i   (   R    R   R   R   R   (   R:   R   R  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt&   test_basic_function_with_two_arguments4  s    "c         C` s   t  j j d  } t  j j d  } t  j j d  } t  j j d  } t t | | | | g  | j |  j |  j |   d  S(   Ni   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R    R   R   R   R   (   R:   R   R  R  t   D(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt8   test_basic_function_with_dynamic_programing_optimization<  s
    c         C` sn   t  j j d  } t  j j d  } t  j j d  } t  j j d  } t t | | | | g  j d  d  S(   Ni   i   (   i   i   (   i   i   (   i   i   (   i   (   R    R   R   R   Rk   (   R:   t   A1dR  R  R  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_vector_as_first_argumentE  s
    c         C` sn   t  j j d  } t  j j d  } t  j j d  } t  j j d  } t t | | | | g  j d  d  S(   Ni   i   (   i   i   (   i   i   (   i   i   (   i   (   R    R   R   R   Rk   (   R:   R   R  R  t   D1d(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_vector_as_last_argumentO  s
    c         C` sn   t  j j d  } t  j j d  } t  j j d  } t  j j d  } t t | | | | g  j d  d  S(   Ni   i   (   i   i   (   i   i   (    (   R    R   R   R   Rk   (   R:   R  R  R  R  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt&   test_vector_as_first_and_last_argumentY  s
    c         C` s  t  j j d   t  j j d!  t  j j d"  t  j j d#  t  j j d$  t  j j d%  g } t  j d d	 d
 d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g g  } t  j d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g g d t } | d 8} t | d t \ } } t t  j | d  d  d d   f  t  j | d  d  d d   f   t t  j |  t  j |   d  S(&   Ni   i#   i   i   i
   i   i   g        g     @g     þ@g    O@g    1@g    @g     @g     @g     ջ@g     @g     p@g     @g     @g     @@g     X@g     @i    i   i   i   i   R&   t   return_costsi(   i   i#   (   i#   i   (   i   i   (   i   i
   (   i
   i   (   i   i   (   R    R   R   t   intR   R   R   R  (   R:   t   arrayst
   m_expectedt
   s_expectedR   R  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_dynamic_programming_logicc  s.    $
%&c         C` s3   t  t t g   t  t t t j j d  g  d  S(   Ni   (   i   i   (   R   R   R   R    R   (   R:   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_too_few_input_arrays  s    (
   R?   R@   R  R  R  R  R  R  R  R   (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR  (  s   	
				
	
	
	t   TestTensorinvc           B` s   e  Z e j j d  e j d  d f e j d  d f g  d    Z e j j d d d g  d
    Z e j j d d d g  d    Z	 d   Z
 RS(   s   arr, indi   i   i   i   i   i   c         C` s*   t  t   t j | d | Wd  QXd  S(   Nt   ind(   R   R   R   t	   tensorinv(   R:   R  R"  (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_non_square_handling  s    s
   shape, indi   c         C` sb   t  j d  } | | _ t j d | d |  } | j | | j |  } | j } t | |  d  S(   Ni   R(   R"  (   R    R   Rk   R   R#  R   (   R:   Rk   R"  R(   t   ainvR   t   actual(    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_tensorinv_shape  s    		R"  i    ic      	   C` sE   t  j d  } d | _ t t   t j d | d |  Wd  QXd  S(	   Ni   i   i   i   i   R(   R"  (   i   i   i   i   (   R    R   Rk   R   R   R   R#  (   R:   R"  R(   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_tensorinv_ind_limit  s    	c         C` sk   t  j d  } d | _ t j | d d } t  j d  } t t  j | | d  t  j j | |   d  S(   Ni   i   i   R"  i   (   i   i   i   (	   R    R   Rk   R   R#  R   R   t	   tensordott   tensorsolve(   R:   R(   R%  R)   (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   test_tensorinv_result  s
    	(   i   i   i   i   (   i   i   i   (   i   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(  R+  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyR!    s   $
y      ?       @y       @      @y      @      @y      @      @y       @      ?y      ?       @y      ?       @y       @      @y      @      @y      @      @y       @      ?y      ?       @y      ?       @y       @      @y      @      @y      @      @y       @      ?y      ?       @y      ?      @y      ?       y      ?      y      ?      (   i    i    (   i    y      ?      ?y       @       @y      @      y      @      y      @      "@y      @       @y       @      ?y      ?       @y      ?      ?y       @       @y      @      y      @      "y      @      y      @       @y       @      ?y      ?       @y      @      y      ?      ?y       @       @y      @      y      @      y      @      "@y      @       @y       @      ?y      ?       @y      ?      ?y       @       @y      @      y      @      "y      @      y      @       @y       @      ?y      ?       @y      @      y      ?      ?y       @       @y      @      y      @      y      @      "@y      @       @y       @      ?y      ?       @y      ?      y       @       y      ?      ?y       @       @y      @      y      @      "y      @      y      @       @y       @      ?y      ?       @y      ?      y       @       y      ?      y       @       y       @      @y       @      y       @      @y       @      (   i    i    (w   t   __doc__t
   __future__R    R   R   R  R  Rw   R   R  R  R   t   numpyR    R   R   R   R   R   R   R	   R
   R   R   R   R   R   t   numpy.linalgR   R   R   R   R   t   numpy.linalg.linalgR   t   numpy.testingR   R   R   R   R   R   R   R   R$   R'   R-   R.   R/   RB   R>  R5   RG   R   R   Rg   R}   R   Rh   Rn   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  R  R  R  R  R#  R   R   R   R&   R0  RN  RT  R_  Re  Rf  Rh  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R   R  R  R!  (    (    (    s=   lib/python2.7/site-packages/numpy/linalg/tests/test_linalg.pyt   <module>   s  :"(:				
			!!!*!!!*		'*'*$'$'$$'-		!!!!			0			
:	
$.@
*41V6;w$	d,			1	"^