ó
ŘĆ÷Xc           @` 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 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 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 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* d
   Z+ d   Z, e% Z- d   Z% d   Z. d   Z/ d   Z0 d e1 f d     YZ2 e j3 j4 d  e2 d e d d g d d g g d e e d d g d e  e2 d e d d g d d g g d e e d d g d e  e2 d e d d g d d g g d e e d d d g d d d g g d e  e2 d e d d d d g d  d! d" d# g g d e e d d$ d d g d e  e2 d% e d d d d g d  d! d" d# g g d e e d d$ d d g d e  e2 d& e d d d d g d  d! d" d# g g d e e d d$ d d d' d g d' d d' d d' d( g g d e  e2 d) e e g  d e  e e g  d e  e j5  e2 d* e j3 j6 d+ d+  e j3 j6 d+   e2 d, e j3 j6 d' d'  e j3 j6 d'   e2 d- d' d g d  d" g g d d' g  e2 d. e d d g d d g g  e d d g  j7  e2 d/ e d d g d d g g  e d d g  j7  g Z8 e2 d0 e d d d g d d d g g d e e d d g d e  e2 d1 e d d g d d g d2 d g g d e e d d d g d e  e2 d3 e d d d g d d d g g d e e d d g d e  e2 d4 e d d g d d g d2 d g g d e e d d d g d e  e2 d5 e d d$ d d d d g d d# d d6 d d g g d e e d d$ d d g d e  e2 d7 e d d$ d d g d d d d6 g d2 d! d d8 g g d e e d d$ d d d d g d e  e2 d9 e d d$ d d d d g d d# d d6 d d g g d e e d d$ d d g d e  e2 d: e d d$ d d g d d d d6 g d2 d! d d8 g g d e e d d$ d d d d g d e  e2 d; e d d$ d d d d g d d# d d6 d d g g d e e d d$ d d g d' d$ d d g g d e  e2 d< e d d$ d d g d d d d6 g d2 d! d d8 g g d e e d d$ d d g d' d$ d d g d' d$ d d g g d e  e2 d= e j3 j6 d+ d>  e j3 j6 d>   e2 d? e j3 j6 d' d@  e j3 j6 d@   e2 dA e j3 j6 d@ d'  e j3 j6 d'   g Z9 e2 dB e d d g d d g g d e e:  e2 dC e d d g d d g g d e e:  e2 dD e d d d g d d d' g g d e e:  e2 dE e d d d g d d d' g g d e e:  e2 dF e e g  d e  e: e j5  e2 dG d' d g d d' g g e:  e2 d. e d d g d d g g  e:  e2 dH e d d g d d g g  e:  e2 dI e j3 j6 d' d'  e:  g	 Z; g  Z< g  Z= g  Z> x˘e< e8 f e= e9 f e> e; f f D]\ Z? Z@ xpe@ D]hZA eB eA jC e jD  rqă
n  e j eA jC d eA jC d  eA jC g  ZC eA jE e: k rFe: ZE n) e j eA jE dJ eA jE dK eA jE g  ZE e2 eA jF dL eC eE eA jG  ZH e? jI eH  e j eA jC g d d   jJ d  d f eA jC jK  ZC eA jE e: k rée: ZE n6 e j eA jE g d d   jJ d  d f eA jE jK  ZE e2 eA jF dM eC eE eA jG  ZH e? jI eH  qă
WqĐ
WdN   ZL xż e8 e9 e; e< e= e> f D]Ľ Z@ g  ZM x e@ D] ZA xx eL eA jC  D]g \ ZC ZN xX eL eA jE  D]G \ ZE ZO e2 eA jF dO eN dO eO eC eE dP eA jG ZH eM jI eH  qşWqWqWe@ jP eM  quWdQ   ZQ dR e1 f dS     YZR dT e1 f dU     YZS dV e1 f dW     YZT dX e1 f dY     YZU dZ e1 f d[     YZV d\ e1 f d]     YZW d^   ZX d_   ZY d` eR eT f da     YZZ db eR eT f dc     YZ[ dd eR eT f de     YZ\ df eR eT f dg     YZ] dh eR eT f di     YZ^ dj eR eT f dk     YZ_ dl eR f dm     YZ` dn e1 f do     YZa dp eR f dq     YZb dr eR eT f ds     YZc dt eR eS f du     YZd dv e1 f dw     YZe dx e1 f dy     YZf dz eV eW f d{     YZg d| eV eW f d}     YZh d~ e1 f d     YZi d e1 f d     YZj d ei f d     YZk d ei f d     YZl d ei f d     YZm d e1 f d     YZn d   Zo d e1 f d     YZp d   Zq d   Zr d   Zs d e1 f d     YZt eu d k re'   n  d S(   s#    Test functions for linalg module

i    (   t   divisiont   absolute_importt   print_functionN(   t   arrayt   singlet   doublet   csinglet   cdoublet   dott   identity(   t   multiplyt
   atleast_2dt   inft   asarrayt   matrix(   t   linalg(   t   matrix_powert   normt   matrix_rankt	   multi_dot(   t   _multi_dot_matrix_chain_order(
   t   assert_t   assert_equalt   assert_raisest   assert_array_equalt   assert_almost_equalt   assert_allcloset   run_module_suitet   dect   SkipTestt   suppress_warningsc         C` s   |  p
 | S(   N(    (   t   at   b(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   ifthen   s    c         C` s   |  p
 | S(   N(    (   R   R    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   imply   s    c         K` sG   t  |   j j t t f k r' d } n d } t |  | d | | d  S(   Ni   i   t   decimal(   R   t   dtypet   typeR   R   t   old_assert_almost_equal(   R   R    t   kwR#   (    (    s=   /tmp/pip-build-X4mzal/numpy/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=   /tmp/pip-build-X4mzal/numpy/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=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   get_complex_dtype1   s    c         C` s   |  t  t f k r d Sd Sd  S(   Ngńhăľřä>gdyáýĽ=(   R   R   (   R$   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   get_rtol6   s    t
   LinalgCasec           B` s&   e  Z d d   Z d   Z d   Z RS(   c         C` s;   t  t | t   | |  _ | |  _ | |  _ | |  _ d  S(   N(   R   t
   isinstancet   strt   nameR   R    t   exception_cls(   t   selfR.   R   R    R/   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   __init__@   s
    			c         C` sE   |  j  d  k r% | |  j |  j  n t |  j  | |  j |  j  d  S(   N(   R/   t   NoneR   R    R   (   R0   t   do(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   checkG   s    c         C` s   d |  j  f S(   Ns   <LinalgCase: %s>(   R.   (   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   __repr__M   s    N(   t   __name__t
   __module__R2   R1   R4   R5   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR+   >   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   emptyt   8x8i   t   1x1t   nonarrayt   matrix_b_onlyt   matrix_a_and_bt   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   hsinglet   hdoublet   hcsinglet   hcdoublet   hemptyt	   hnonarrayt   hmatrix_a_and_bt   hmatrix_1x1i   i   t   _tile3t   _tile213c         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   iü˙˙˙i˙˙˙˙iţ˙˙˙i   iý˙˙˙R$   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,   t   npt   ndarrayt   ndimt	   itertoolst   productt   tuplet   zipt   shapet   abst   sliceR2   R:   R$   t   viewt   uint32t   fillt	   __class__R   t   allt   joint   listRZ   t   libt   stride_trickst
   as_strided(   t   xt
   stride_sett   repeatsR   R    t	   new_shapet   repeatt   slicest   xit   jt   s(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   _stride_comb_iterő   sF    
5+

/"
"
"

RY   R/   c         C` s`   xY | D]Q } y | j  |   Wq t k
 rW d | } | t j   7} t |   q Xq Wd  S(   Ns   In test case: %r

(   R4   t	   Exceptiont	   tracebackt
   format_exct   AssertionError(   t   funct   casest   caset   msg(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   _check_cases9  s    
t   LinalgTestCasec           B` s   e  Z d    Z RS(   c         C` s   t  |  j t  d  S(   N(   R   R3   t   SQUARE_CASES(   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_sq_casesE  s    (   R6   R7   R   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR   C  s   t   LinalgNonsquareTestCasec           B` s   e  Z d    Z RS(   c         C` s   t  |  j t  d  S(   N(   R   R3   t   NONSQUARE_CASES(   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR   K  s    (   R6   R7   R   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR   I  s   t   LinalgGeneralizedTestCasec           B` s   e  Z e j d     Z RS(   c         C` s   t  |  j t  d  S(   N(   R   R3   t   GENERALIZED_SQUARE_CASES(   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_generalized_sq_casesQ  s    (   R6   R7   R   t   slowR   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR   O  s   t"   LinalgGeneralizedNonsquareTestCasec           B` s   e  Z e j d     Z RS(   c         C` s   t  |  j t  d  S(   N(   R   R3   t   GENERALIZED_NONSQUARE_CASES(   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_generalized_nonsq_casesX  s    (   R6   R7   R   R   R   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR   V  s   t   HermitianTestCasec           B` s   e  Z d    Z RS(   c         C` s   t  |  j t  d  S(   N(   R   R3   t   HERMITIAN_CASES(   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_herm_cases_  s    (   R6   R7   R   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR   ]  s   t   HermitianGeneralizedTestCasec           B` s   e  Z e j d     Z RS(   c         C` s   t  |  j t  d  S(   N(   R   R3   t   GENERALIZED_HERMITIAN_CASES(   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_generalized_herm_casese  s    (   R6   R7   R   R   R   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR   c  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   i˙˙˙˙i   s   Not implemented...R$   iţ˙˙˙(   R   R`   Re   t
   ValueErrorR^   R:   t   common_typeRa   Rb   t   mapt   rangeR   (   R   R    Ru   t   rt   c(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   dot_generalizedj  s    !&c         C` s   t  |   }  |  j d k r{ t j |  j d |  j } x> t j t t	 |  j d     D] } t
 |  j d  | | <qV W| St
 |  j d  Sd  S(   Ni   R$   iţ˙˙˙i    (   R   R`   R^   R:   Re   R$   Ra   Rb   R   R   R	   (   R   R   R   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   identity_like_generalized}  s    &t	   TestSolvec           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` sQ   t  j | |  } t | t | |   t t t | t  t | t    d  S(   N(   R   t   solveR   R   R   R"   R,   R   (   R0   R   R    Rr   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3     s    c         c` s5   d   } x% t  t t t g D] } | | f Vq Wd  S(   Nc         S` 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$   Rr   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR4     s    '(   R   R   R   R   (   R0   R4   R$   (    (    s=   /tmp/pip-build-X4mzal/numpy/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(    (   R6   R7   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR˘     s   i   i   i   i   i   i    (   R^   R_   t   aranget   reshapeRh   R   R    R   R   R,   R   t   LinAlgErrorR   (   R0   R˘   R   R    t   expectedt   result(    (    s=   /tmp/pip-build-X4mzal/numpy/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(    (   R6   R7   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR˘   š  s   i   i   i   i   i   i    (
   R^   R_   RŁ   R¤   Rh   R   R    R   R   R,   (   R0   R˘   R   R    RŚ   R§   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_0_size_kˇ  s    '111P(   R6   R7   R3   RĄ   R¨   RŠ   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR     s   			!t   TestInvc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` sT   t  j |  } t t | |  t |   t t t | t  t | t    d  S(   N(	   R   t   invR   R   R   R   R"   R,   R   (   R0   R   R    t   a_inv(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3   Ě  s    c         c` s5   d   } x% t  t t t g D] } | | f Vq Wd  S(   Nc         S` 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$   Rr   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR4   Ó  s    '(   R   R   R   R   (   R0   R4   R$   (    (    s=   /tmp/pip-build-X4mzal/numpy/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  d  S(   NR˘   c           B` s   e  Z RS(    (   R6   R7   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR˘   Ű  s   i    i   R$   (   i    i   i   (   i    i    (   R^   R_   t   zerost   int_Rh   R   RŤ   R   R$   R%   t   float64R   Re   R,   t	   complex64(   R0   R˘   R   t   res(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR¨   Ů  s    !!(   R6   R7   R3   RĄ   R¨   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRŞ   Ę  s   		t   TestEigvalsc           B` s   e  Z d    Z d   Z RS(   c         C` s5   t  j |  } t  j |  \ } } t | |  d  S(   N(   R   t   eigvalst   eigR   (   R0   R   R    t   evt   evaluest   evectors(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3   ë  s    c         c` s5   d   } x% t  t t t g D] } | | f Vq Wd  S(   Nc         S` 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$   Rr   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR4   ń  s    ''(   R   R   R   R   (   R0   R4   R$   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRĄ   đ  s    	(   R6   R7   R3   RĄ   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR˛   é  s   	t   TestEigc           B` s   e  Z d    Z d   Z RS(   c         C` s   t  j |  \ } } t t | |  t j |  t j |  d d  d  d   f d t | j  t	 t
 t | t  t | t    d  S(   N.t   rtol(   R   R´   R   R   R^   R   R2   R*   R$   R   R"   R,   R   (   R0   R   R    Rś   Rˇ   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3   ü  s
    /c         c` s5   d   } x% t  t t t g D] } | | f Vq Wd  S(   Nc         S` 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$   Rr   t   wt   v(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR4     s    ''(   R   R   R   R   (   R0   R4   R$   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRĄ     s    	(   R6   R7   R3   RĄ   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR¸   ú  s   	t   TestSVDc           B` s   e  Z d    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  t | t    t	 t
 t | t  t | t    d  S(   Ni    .Rš   (   R   t   svdR   R   R^   R   R2   R*   R$   R   R"   R,   R   (   R0   R   R    t   uRz   t   vt(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3     s    5%c         c` s5   d   } x% t  t t t g D] } | | f Vq Wd  S(   Nc         S` 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$   Rr   Rž   Rz   t   vh(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR4     s    '(   R   R   R   R   (   R0   R4   R$   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRĄ     s    		(   R6   R7   R3   RĄ   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRź     s   	t   TestCondSVDc           B` s   e  Z d    Z d   Z RS(   c         C` sM   t  |  } t j | d t } t | d | d t j |  d d d  S(	   NRŔ   .i    i˙˙˙˙R#   i   (   .i    (   .i˙˙˙˙(   R   R   R˝   RÁ   R&   t   cond(   R0   R   R    R   Rz   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3   -  s    c         C` s^   t  j d d d g d d d g d d d g g  } t t j |  t j | d  d  d  S(	   Ng      đ?g       @i    g       Ŕg      @g      @.(   N.(   R^   R   R   R   RÄ   R2   (   R0   t   A(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_stacked_arrays_explicitly3  s    3(   R6   R7   R3   RĆ   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRĂ   +  s   	t	   TestCond2c           B` s   e  Z d    Z d   Z RS(   c         C` sP   t  |  } t j | d t } t | d | d	 t j | d  d d d  S(
   NRŔ   .i    i˙˙˙˙i   R#   i   (   .i    (   .i˙˙˙˙(   R   R   R˝   RÁ   R&   RÄ   (   R0   R   R    R   Rz   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3   :  s    c         C` sd   t  j d d d g d d d g d d d g g  } t t j | d  t j | d	 d  d  d  S(
   Ng      đ?g       @i    g       Ŕg      @g      @i   .(   N.(   R^   R   R   R   RÄ   R2   (   R0   RĹ   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRĆ   @  s    3(   R6   R7   R3   RĆ   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRÇ   8  s   	t   TestCondInfc           B` s   e  Z d    Z RS(   c         C` sM   t  d d d g d d d g d d d g g  } t t j | t  d  d  S(   Ng      đ?i    g       Ŕg      @(   R   R   R   RÄ   R   (   R0   RĹ   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   testG  s    0(   R6   R7   RÉ   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRČ   E  s   t   TestPinvc           B` s   e  Z d    Z RS(   c         C` sa   t  j |  } t t | |  t t |  j d   t t t	 | t
  t	 | t
    d  S(   Ni    (   R   t   pinvR   R   R	   R   Re   R   R"   R,   R   (   R0   R   R    t   a_ginv(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3   N  s    )(   R6   R7   R3   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRĘ   L  s   t   TestDetc           B` s#   e  Z d    Z d   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   axisi˙˙˙˙i    i   (   R   t   dett   slogdetR   R$   R%   R   R   t   astypeR   Rł   R   R
   t   reduceR^   t   expt
   atleast_1dRf   R   R   (	   R0   R   R    t   dRz   t   ldt   adRľ   t   m(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3   V  s    )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   (   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt	   test_zerog  s    ""#&&#&c         c` s5   d   } x% t  t t t g D] } | | f Vq Wd  S(   Nc         S` 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$   Rr   t   phRz   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR4   u  s
    '(   R   R   R   R   (   R0   R4   R$   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRĄ   t  s    	(   R6   R7   R3   RŮ   RĄ   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRÍ   T  s   		t	   TestLstsqc           B` s   e  Z d    Z RS(   c         C` sÝ  t  j |  } | j \ } } t j | d  \ } } } t j | |  \ }	 }
 } } | | k r t | t | |	   t | |  n t | |  t | | j	 |   | | k rH| | k rHt  j t
 t  j | |	  |   d j d d  } t  j |  } t t  j |  j  d k rfd | _ t |
 j | j  qfn t  j g   j t |	   } t |
 |  t t  j |
 j t  j   t t t | t  t |	 t    t t t | t  t |
 t    d  S(   Ni    i   RÎ   i   (   i   (   R^   R   Re   R   R˝   t   lstsqR   R   R   t   __array_wrap__Rf   t   sumt   lenR   Rh   R%   R   t
   issubdtypeR$   t   floatingR"   R,   R   (   R0   R   R    t   arrRŘ   t   nRž   Rz   Rż   Rr   t	   residualst   rankt   svt   expect_resids(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3     s(    5	%(   R6   R7   R3   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRŰ     s   t   TestMatrixPowerc           B` s#  e  Z e d  d g d d  g g  Z e d d g d d g g  Z e d d  g d  d  g g  Z e d d g d	 d
 g g  Z e d  Z e d d d  f j	   Z
 e d  d d  f e d d d  f <e
 e d  d d  f <d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   i    i   i˙˙˙˙i   iů˙˙˙iţ˙˙˙i
   gš?g	@g333333ó?gffffffć?Nc         C` s,   t  t |  j d d d d  |  j  d  S(	   Ni   id   i
   i   i   l                i   i    (   R   R   t   R90(   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_large_powerŚ  s    c         C` s+   t  t |  j d d d  t d   d  S(   Ni   id   i
   i   l                i   i    (   R   R   Ré   R	   (   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_large_power_trailing_zeroŞ  s    c         c` s;   d   } x+ |  j  |  j |  j g D] } | | f Vq" Wd  S(   Nc         S` s@   t  |  d  } t | t |  j d   t | j |  j  d  S(   Ni    (   R   R   R	   Re   R$   (   t   Mt   mz(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   tzŻ  s    (   t   Arb22t   arbfloatt   large(   R0   Rî   Rě   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   testip_zeroŽ  s    	c         c` s;   d   } x+ |  j  |  j |  j g D] } | | f Vq" Wd  S(   Nc         S` s3   t  |  d  } t | |   t | j |  j  d  S(   Ni   (   R   R   R$   (   Rě   Rí   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRî   ˇ  s    (   Rď   Rđ   Rń   (   R0   Rî   Rě   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt
   testip_oneś  s    	c         c` s;   d   } x+ |  j  |  j |  j g D] } | | f Vq" Wd  S(   Nc         S` s<   t  |  d  } t | t |  |    t | j |  j  d  S(   Ni   (   R   R   R   R$   (   Rě   Rí   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRî   ż  s    (   Rď   Rđ   Rń   (   R0   Rî   Rě   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt
   testip_twož  s    	c         c` sA   d   } x1 |  j  |  j |  j |  j g D] } | | f Vq( Wd  S(   Nc         S` s6   t  |  d  } t t |  j d  t | |    d  S(   Ni˙˙˙˙i    (   R   R   R	   Re   R   (   Rě   Rí   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRî   Ç  s    (   Ré   Rď   Rđ   Rń   (   R0   Rî   Rě   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   testip_invertĆ  s    	%c         ` s/   d d  l  } t | j j j   f d    d  S(   Ni    c           ` s   t    j d  S(   Ni˙˙˙˙(   R   t   noninv(    (   R0   (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   <lambda>Đ  s    (   t   numpy.linalgR   R   RĽ   (   R0   t   numpy(    (   R0   s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_invert_noninvertibleÍ  s    (   R6   R7   R   Ré   Rď   Rö   Rđ   R	   Rń   t   copyt   tRę   Rë   Rň   Ró   Rô   Rő   Rú   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRč     s   &						t   TestBoolPowerc           B` s   e  Z d    Z RS(   c         C` s8   t  t t g t t g g  } t t | d  |  d  S(   Ni   (   R   t   TrueRÁ   R   R   (   R0   RĹ   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_squareŐ  s    (   R6   R7   R˙   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRý   Ó  s   t   TestEigvalshc           B` s,   e  Z d    Z d   Z d   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Î   i˙˙˙˙Rš   t   U(   R   t   eigvalshR´   t   sortR   R*   R$   (   R0   R   R    Rľ   Rś   Rˇ   t   ev2(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3   Ü  s    c         c` s5   d   } x% t  t t t g D] } | | f Vq Wd  S(   Nc         S` 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   R  R   R$   R(   (   R$   Rr   Rş   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR4   č  s    '(   R   R   R   R   (   R0   R4   R$   (    (    s=   /tmp/pip-build-X4mzal/numpy/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   t   float32R   R   R   R  (   R0   Rr   (    (    s=   /tmp/pip-build-X4mzal/numpy/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$   i˙˙˙˙Rš   R  R  t   lR  Rž   (   R^   R   R   R*   R   R  R   (   R0   t   Klot   Kupt   tgtRš   Rş   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt	   test_UPLOő  s    **(   R6   R7   R3   RĄ   R  R  (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR   Ú  s   			t   TestEighc           B` s,   e  Z d    Z d   Z d   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š   R  t   err_msg(   R   t   eighR´   R  R   R   R   R^   R   R2   R*   R$   t   repr(	   R0   R   R    Rľ   t   evcRś   Rˇ   R  t   evc2(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR3     s    //c         c` s5   d   } x% t  t t t g D] } | | f Vq Wd  S(   Nc         S` 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   R  R   R$   R(   (   R$   Rr   Rş   Rť   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR4   "  s    '(   R   R   R   R   (   R0   R4   R$   (    (    s=   /tmp/pip-build-X4mzal/numpy/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$   R  R  R  R	  (   R^   R   R
  R   R   R   R  (   R0   Rr   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR  *  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$   i˙˙˙˙Rš   R  R  R  R  Rž   (   R^   R   R   R*   R   R  R   (   R0   R  R  R  Rš   Rş   Rť   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR  0  s    **(   R6   R7   R3   RĄ   R  R  (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR    s   				t	   _TestNormc           B` se   e  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` 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   t   dtR   (   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt
   test_emptyL  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 encounteredi˙˙˙˙i   g       @g      đ?i   g      @g      ŕ?g      Đ?(   R^   R   t	   typecodesRŃ   R   R   R   t
   issubclassR$   R%   Rá   R   R   t   filtert   RuntimeWarning(	   R0   R   t   exact_typest   inexact_typest	   all_typest   each_inexact_typest   att   ant   sup(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_vector_return_typeQ  s:    
))c   	   	   C` s[  t  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 | d d d qK Wd  S(   Ni   i    R  t   fdFDg       @s   divide by zero encounteredi˙˙˙˙g      đ?i   g      @iţ˙˙˙t   frot   nucgU&,t=Ű@R#   i   g      ŕ?(   R^   R   R  RŃ   R   R   R   R  R$   R%   Rá   R   R   R  R  R&   (	   R0   R   R   R!  R"  R#  R$  R%  R&  (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_matrix_return_typez  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   i˙˙˙˙iţ˙˙˙iý˙˙˙iü˙˙˙c         ` 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      $@i˙˙˙˙g      (@i   i   iţ˙˙˙g      i@i   g      ŕżi    i   gĽ6Ň­č@g¸ëQ¸Ţ?gĽ6Ň­č@grÇqÇö?gĘsÔcŮŃę?(   R^   t   testingR   R   R   R   (   Rť   (   R0   (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   _test˛  s     






R$   (   R   R  (   R0   R   R    R   R-  Rť   (    (   R0   s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_vector­  s    'c         C` s(  t  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      @i˙˙˙˙g      @i   göWł?"@iţ˙˙˙gŃĘě?t   nofroiý˙˙˙i    gšT"@gšT"@(   R   R  R   R   R   R   R   (   R0   RĹ   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_matrix_2x2Ë  s    'c         C` s  d t  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*  gţB+pcő?gń?g333333ă?g      đ?i˙˙˙˙gŮ?gű&Ţę.dě?iţ˙˙˙gÜ¸Ő çČ?gš?gš?gAbĆ2Ţ"@gš?gAbĆ2Ţ"@(   R^   R   R  R   R   R   (   R0   RĹ   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_matrix_3x3Ű  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$   i˙˙˙˙i    t   ordRÎ   i   iţ˙˙˙R)  (   R   R  R2   R^   t   InfR   Re   R   R   RŁ   R¤   R`   Ra   t   combinationsR   R   t   taket   T(   R0   RĹ   t   ordert   kt	   expected0t	   expected1t   Bt   ndRÎ   t   row_axist   col_axisRă   t   k_indexRŚ   (    (    s=   /tmp/pip-build-X4mzal/numpy/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}R2  RÎ   t   keepdimsR  i˙˙˙˙i    iţ˙˙˙R)  R*  (   i   i   i   (   R^   RŁ   R  R¤   R   R2   Rţ   R   t   squeezet   formatR   Re   R3  R   R`   Rn   Rc   Ra   t   permutations(	   R0   RĹ   t   allclose_errt	   shape_errRŚ   t   foundt   expected_shapeR7  R8  (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_keepdims  sB    *,
$/"c         C` sZ  t  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 t | d  d  t t 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Ł   R¤   R   R   R   R2   (   R0   RĹ   R;  R7  (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_bad_args;  s    -*N(   R6   R7   R2   R  R   R  R'  R+  R.  R0  R1  R@  RI  RJ  (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR  G  s   		)	3				%	*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$   R2  i   gÍĚĚĚĚL)@R#   i   (   R^   RŁ   t
   longdoubleR&   R   (   R0   Rr   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_longdouble_normX  s    c         C` s>   t  j d	 g d t  j } t t | d d d
 d d d  S(   Ni   i   R$   R2  i   R#   i   I       i   I       (   R^   R   t   int32R&   R   (   R0   Rr   (    (    s=   /tmp/pip-build-X4mzal/numpy/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    iú˙˙˙i   g¨Ëţ˙V;'@R2  i   R#   i
   i	   i   (   i   y      @      @y      Ŕ      @(	   R^   R:   t   clongdoubleR&   R   R   RŃ   t
   complex128R°   (   R0   RŐ   Rą   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_complex_high_ordd  s    

%%(   R6   R7   RM  RO  RR  (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRK  V  s   		t   TestNormDoublec           B` s   e  Z e j Z d  Z RS(   i   (   R6   R7   R^   R   R  R   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRS  q  s   	t   TestNormSinglec           B` s   e  Z e j Z d  Z RS(   i   (   R6   R7   R^   R
  R  R   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRT  v  s   	t   TestNormInt64c           B` s   e  Z e j Z d  Z RS(   i   (   R6   R7   R^   t   int64R  R   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRU  {  s   	t   TestMatrixRankc           B` s   e  Z d    Z RS(   c         c` sí   t  d t t j d   f Vt j d  } d | d <t  t |  d f Vt  t t j d	   d f Vt  t d d d d g  d f Vt  t t j d
   d f Vt  t d g  d f Vt t t t j d  f Vt  t d  d f Vd  S(   Ni   g        i˙˙˙˙i   i    i   i   (   i˙˙˙˙i˙˙˙˙(   i   i   (   i   (   i   i   i   (   R   R   R^   t   eyeR­   R   t	   TypeError(   R0   t   I(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_matrix_rank  s    
 (   R6   R7   R[  (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRW    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^   t   randomt   RandomStateR   t   normalR   R   (   t   rngt   it   X(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_reduced_rank  s    ::t   TestQRc           B` s,   e  Z d    Z 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$   Re   t   minR   t   qrR   R,   R   R   R6  t   conjR^   RX  t   triu(   R0   R   t   a_typet   a_dtypeRŘ   Ră   R8  t   qR   t   q1t   r1t   r2(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   check_qrĽ  s8    	((c         C` s)   t  j d  } t t j t j |  d  S(   Ni    i   (   i    i   (   R^   R­   R   R   RĽ   Ri  (   R0   R   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_qr_emptyË  s    c         C` s  t  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$   Re  t   raw(   i   i   (   i   (   i   i   (   i   (	   R   R^   R   R   Ri  R   R$   Re   R6  (   R0   R   t   ht   tau(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_mode_rawĎ  s    0c         C` s1  t  d d g d d g g  } t  d d g d d g d d g g  } xi d D]a } | j |  } | j |  } |  j |  |  j |  |  j | j  |  j t |   qL Wxy d D]q } d d | j |  } d d | j |  } |  j |  |  j |  |  j | j  |  j t |   q¸ Wd  S(	   Ni   i   i   i   i   i   t   fdy              đ?(   R   RŃ   Rr  R6  R   (   R0   R   R    R  t   m1t   m2(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_mode_all_but_economicĺ  s     '(   R6   R7   Rr  Rs  Rw  R{  (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyRd  Ł  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Ż   RX  t   newbyteordert   byteswapR   R$   R   RŤ   RĎ   RË   R   (   t   nativet   dttRâ   t   n_arrt   sw_arrt   routineRą   (    (    s=   /tmp/pip-build-X4mzal/numpy/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_invertibleRr   (    (    s=   /tmp/pip-build-X4mzal/numpy/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 d   n X| d k rNt  j d  t  j d  d d  l } | j | j d  y t	 j
 j j   Wn' t k
 r¨ n t  j t  j  n XyD t	 j d g g  } t	 j
 j j d d d | d | | d d 	 Wn5 t k
 r:} d t |  k r;t  j |   q;n Xt  j t  j  n6 t  j   \ } } t  j |  |  k rt 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   closet   resourcet	   setrlimitt   RLIMIT_CORER^   R   t   lapack_litet   xerblaR   t   _exitt	   EX_CONFIGR   t   dorgqrR-   t   waitt   WEXITSTATUS(   t	   XERBLA_OKt   pidR  R   t   et   status(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_xerbla_override  s:    t   TestMultiDotc           B` sG   e  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   (   R0   RĹ   R;  t   C(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt(   test_basic_function_with_three_argumentsN  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   (   R0   RĹ   R;  RŁ  t   D(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt8   test_basic_function_with_dynamic_programing_optimizationX  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   Re   (   R0   t   A1dR;  RŁ  RĽ  (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_vector_as_first_argumenta  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   Re   (   R0   RĹ   R;  RŁ  t   D1d(    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_vector_as_last_argumentk  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   Re   (   R0   R§  R;  RŁ  RŠ  (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt&   test_vector_as_first_and_last_argumentu  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  j } | 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   Rk  (   R0   t   arrayst
   m_expectedt
   s_expectedRz   RŘ   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_dynamic_programming_logic  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]  (   R0   (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   test_too_few_input_arrays  s    (	   R6   R7   R¤  RŚ  R¨  RŞ  RŤ  Rą  R˛  (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyR˘  L  s   	
			
	
	
	t   __main__(v   t   __doc__t
   __future__R    R   R   R  R  Ra   R}   t   warningsRů   R^   R   R   R   R   R   R   R	   R
   R   R   R   R   R   Rř   R   R   R   R   t   numpy.linalg.linalgR   t   numpy.testingR   R   R   R   R   R   R   R   R   R   R!   R"   R&   R(   R)   R*   t   objectR+   R]  t   seedRĽ   t   randR6  R   R   R2   R   R   R   R   R  t   srcR   R,   R   R_   R    R.   R/   t   new_caset   appendR¤   Re   R{   t	   new_casest   a_tagt   b_tagt   extendR   R   R   R   R   R   R   R   R   R   RŞ   R˛   R¸   Rź   RĂ   RÇ   RČ   RĘ   RÍ   RŰ   Rč   Rý   R   R  R  RK  RS  RT  RU  RW  Rc  Rd  R  R  RĄ  R˘  R6   (    (    (    s=   /tmp/pip-build-X4mzal/numpy/numpy/linalg/tests/test_linalg.pyt   <module>   s˘  4("F						!!!*1 1 1B	'*'*< ?'< ?'<4?E!!))		)	)6	6	/"	
		B+82;˙ 	U			1V