ó
¦–Õ\c           @@  sË	  d  d l  m Z d  d l Z e j d ƒ e j d ƒ d  d l Z d  d l Z d  d l j	 Z
 d  d l m Z m Z m Z m Z m Z d  d l m Z m Z e j j d dN d d	 dO d f d d	 dQ d f d d	 dS d f d d dT d f d d dU d f d d dV d f d d dW d f d d	 dX d f d d	 dY d f d d	 dZ d f d[ d\ d] d	 d d^ e f d	 d d_ e f d	 d d	 d` f e f d d d	 e f g ƒ d „  ƒ Z e j j d d	 d da e e d f d	 d db e e d f d	 d dc e e d f d d dd e e d f d d de e e d f d d df e e d f d d	 dg e e d f d d	 dh e e d f d d	 di e e d f d d	 dj e e d f d d	 dk e e d f d d	 dl e e d f d d	 dm e e d f d d	 dn e e d f d d	 do e e d f g ƒ d „  ƒ Z d „  Z e j j d d d	 d	 e f d d	 dp e f d d	 dr e f d d	 dt e f d d du e f d d dv e f d d dw e f d d dx e f d d	 dy e f d d	 dz e f d d	 d{ e f d| d} d~ d	 d d d f d	 d d€ d f d	 d d	 d f d f d d d	 e f g ƒ d „  ƒ Z e j j d d‚ d d	 dƒ d f d d	 d… d f d d	 d‡ d f d d dˆ d f d d d‰ d f d d dŠ d f d d d‹ d f d d	 dŒ d f d d	 d d f d d	 dŽ d f d d d‘ d	 d d’ d f d	 d d“ d f d	 d d	 d” f d f d d d	 e f g ƒ d „  ƒ Z d „  Z  e j j d  d• d– d— g ƒ d! „  ƒ Z! e j j" d" „  ƒ Z# d# „  Z$ d$ „  Z% d% „  Z& e j j" e j j d& d	 d d d' g ƒ d( „  ƒ ƒ Z' e j j" e j j d& d' d) d* g ƒ d+ „  ƒ ƒ Z( d, „  Z) e j j d˜ d™ dš d› g ƒ d0 „  ƒ Z* e j j dœ d dž dŸ g ƒ d1 „  ƒ Z+ e j j d  d¡ d¢ d£ g ƒ d2 „  ƒ Z, d3 „  Z- e j j d¤ d¥ d¦ g ƒ d4 „  ƒ Z. e j j d§ d¨ d© g ƒ d5 „  ƒ Z/ d6 „  Z0 e j j dª d« d¬ g ƒ d8 „  ƒ Z1 e j j d­ d® d¯ d° d± g ƒ d: „  ƒ Z2 e j j d² d³ d´ g ƒ d= „  ƒ Z3 d> „  Z4 e j j d? dµ d¶ d g d· d¸ d  g d¹ dº d» g d¼ d½ d g g ƒ e j j d@ d dA dB e j5 e j5 g ƒ e j j dC e e g ƒ dD „  ƒ ƒ ƒ Z6 e j j" e j j dE d¾ d¿ g dÀ dÁ g dÂ dÃ g dÄ dÅ g dÆ dÇ g g ƒ e j j d@ d dA dB e j5 e j5 g ƒ e j j dC e e g ƒ dF „  ƒ ƒ ƒ ƒ Z7 e j j d? dÈ dÉ d g dÊ dË d  g dÌ dÍ dÎ g g ƒ e j j d@ d  d dG dH g ƒ e j j dC e e g ƒ dI „  ƒ ƒ ƒ Z8 e j j d? dÏ dÐ d g dÑ dÒ dÓ g dÔ dÕ dÖ g g ƒ e j j d@ dJ dK d dG g ƒ e j j dC e e g ƒ dL „  ƒ ƒ ƒ Z9 e j j d? d× dØ dÙ g dÚ dÛ dÜ g g ƒ e j j d@ dK d dG g ƒ e j j dC e e g ƒ dM „  ƒ ƒ ƒ Z: d S(Ý   i    (   t   absolute_importNt   numpyt   scipy(   t   tsqrt   sfqrt   svd_compressedt   qrt   svd(   t	   assert_eqt	   same_keyss   m,n,chunks,error_typei   i
   i   i   i   i(   i   i   i   i€   i   i   i   i‚   iƒ   i,  i   c      	   C@  s—  t  j j |  | ƒ } t j | d | d d ƒ} |  } t |  | ƒ } | } | }	 |  }
 t |  | ƒ } | } | } | } t | | ƒ } | d  k r:t | ƒ \ } } t	 | | f | j
 ƒ t	 | |	 f | j
 ƒ t	 | t j | | ƒ ƒ t	 t  j | | ƒ t j | j | ƒ ƒ t	 | t j | j | j
 d ƒ ƒ ƒ t | d t ƒ\ } } } t  j j | ƒ d } t	 | | ƒ t	 |
 | f | j
 ƒ t	 | f | j
 ƒ t	 | | f | j
 ƒ t	 t  j | | ƒ t j | j | ƒ ƒ t	 t  j | | ƒ t j | | j ƒ ƒ t	 | t j t j | t j | ƒ ƒ | |  ƒ ƒ nY t j | ƒ  t | ƒ \ } } Wd  QXt j | ƒ   t | d t ƒ\ } } } Wd  QXd  S(   Nt   chunkst   namet   Ai    t   compute_svdi   (   t   npt   randomt   randt   dat
   from_arrayt   mint   maxt   NoneR   R   t   shapet   dott   eyet   Tt   triut   rechunkt   Truet   linalgR   t   diagt   pytestt   raises(   t   mt   nR
   t
   error_typet   matt   datat   m_qt   n_qt   m_rt   n_rt   m_ut   n_ut   n_st   m_vht   n_vht   d_vht   qt   rt   ut   st   vht   s_exact(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt	   test_tsqr   s@    (&((5s1   m_min,n_max,chunks,vary_rows,vary_cols,error_typec      	   C@  sò  t  j j |  d | ƒ } |  d | } } | d |  … d f c d 7<| d  d  … d f }	 | d d  d  … f }
 t j |	 d |  d d ƒ} t j |
 d | d d ƒ} t j | d | d d ƒ} | r| | d	 k d  d  … f } | |	 d	 k d  d  … f } | j d } n  | r_| d  d  … | d	 k f } | d  d  … |
 d	 k f } | j d } n  | } t | | ƒ } | } | } | } t | | ƒ } | } | } | } t | | ƒ } | d  k r•t	 | ƒ \ } } | j
 ƒ  } | j
 ƒ  } t | | f | j ƒ t | | f | j ƒ t | t  j | | ƒ ƒ t t  j | | ƒ t  j | j | ƒ ƒ t | t  j | ƒ ƒ t	 | d
 t ƒ\ } } } | j
 ƒ  } | j
 ƒ  } | j
 ƒ  } t  j j | ƒ d } t | | ƒ t | | f | j ƒ t | f | j ƒ t | | f | j ƒ t t  j | | ƒ t  j | j | ƒ ƒ t t  j | | ƒ t  j | | j ƒ ƒ t | t  j t  j | t  j | ƒ ƒ | |  ƒ ƒ nY t j | ƒ  t	 | ƒ \ } } Wd  QXt j | ƒ   t	 | d
 t ƒ\ } } } Wd  QXd  S(   Ni   i    i   R
   R   t   cR1   R   g      à?R   (   R   R   R   R   R   R   R   R   R   R   t   computeR   R   R   R   R   R   R   R   R   R   R    (   t   m_mint   n_maxR
   t	   vary_rowst	   vary_colsR#   R$   R!   R"   t   _c0t   _r0t   c0t   r0R%   R&   R'   R(   R)   R*   R+   R,   R-   R.   R/   R0   R1   R2   R3   R4   R5   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_tsqr_uncertainO   sf    (((5c          C@  s%  d }  d } d } d } t  j j d d ƒ } t j | d d d f ƒ} t j j | ƒ \ } } t |  | f | j ƒ t | | f | j ƒ t | t j	 | | ƒ ƒ t t  j
 | | ƒ t j	 | j | ƒ ƒ t | t j | j | j d ƒ ƒ ƒ t  j | t  j d	 ƒ g ƒ } | d  d  … d f }	 t j | d d ƒ}
 t j |	 d d ƒ} |
 | d k d  d  … f } t j j | ƒ \ } } | j ƒ  } | j ƒ  } t |  | f | j ƒ t | | f | j ƒ t | t  j	 | | ƒ ƒ t t  j
 | | ƒ t  j	 | j | ƒ ƒ t | t  j | ƒ ƒ d  S(
   Ni
   i   R
   i   i    i   (   i   i    i   i    i   (   i   (   i
   i   (   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   vstackt   onesR8   (   R&   R'   R(   R)   R$   t   xR0   R1   t   mat2t   v2t   x2R7   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_tsqr_zero_height_chunksŸ   s2    (&(c         C@  s7  t  j j |  | ƒ } t j | d | d d ƒ} |  } t |  | ƒ } | } | }	 | }
 | d  k rt | ƒ \ } } t | | f | j	 ƒ t | |	 f | j	 ƒ t | t j
 | | ƒ ƒ t t  j |
 |
 ƒ t j
 | j | ƒ ƒ t | t j | j | j	 d ƒ ƒ ƒ n( t j | ƒ  t | ƒ \ } } Wd  QXd  S(   NR
   R   R   i    (   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)   t   m_qtqR0   R1   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt	   test_sfqr¿   s     ()c         C@  s7  t  j j |  | ƒ } t j | d | d d ƒ} |  } t |  | ƒ } | } | }	 | }
 | d  k rt | ƒ \ } } t | | f | j	 ƒ t | |	 f | j	 ƒ t | t j
 | | ƒ ƒ t t  j |
 |
 ƒ t j
 | j | ƒ ƒ t | t j | j | j	 d ƒ ƒ ƒ n( t j | ƒ  t | ƒ \ } } Wd  QXd  S(   NR
   R   R   i    (   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)   RI   R0   R1   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_qrè   s     ()c          C@  sý   d \ }  } t  j j |  | ƒ } t j | d d | f d d ƒ} t | ƒ \ } } t | ƒ \ } } t | | ƒ s{ t ‚ t | | ƒ s t ‚ t | ƒ \ } }	 }
 t | ƒ \ } } } t | | ƒ sÏ t ‚ t |	 | ƒ sä t ‚ t |
 | ƒ sù t ‚ d  S(   Ni   i
   R
   R   R   (   i   i
   (	   R   R   R   R   R   R   R	   t   AssertionErrorR   (   R!   R"   R$   R%   t   q1t   r1t   q2t   r2t   u1t   s1t   v1t   u2t   s2RF   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_linalg_consistent_names  s    !s   m,nc         C@  sÕ   t  j j |  | ƒ } t j | d d | f d d ƒ} t j j | ƒ \ } } } t j | | | ƒ \ } } }	 x_ t | | | g | | |	 g ƒ D]< \ }
 } |
 j	 | j	 k sµ t
 ‚ |
 j | j k s‘ t
 ‚ q‘ Wd  S(   NR
   i   R   R   (   R   R   R   R   R   R   R   R8   t   zipR   RL   t   dtype(   R!   R"   t   at   d_at   d_ut   d_st   d_vtR2   R3   t   vtt   d_et   e(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_dask_svd_self_consistent"  s    !.c          C@  sµ  d \ }  } d } t  j j d ƒ t  j j |  | ƒ } t  j j | | ƒ } | j | ƒ } t j | d d ƒ} t | | d d d	 d
 ƒ\ } } }	 t j | t j t j | ƒ |	 ƒ ƒ }
 d } t	 t j
 j |
 ƒ t  j
 j | ƒ d | d | ƒ| d  d  … d  | … f } | |  } |	 d  | … d  d  … f }	 t  j
 j | ƒ d } | |  } t	 t  j | | ƒ t j | j | ƒ ƒ t	 t  j | | ƒ t j |	 |	 j ƒ ƒ t	 | | ƒ d  S(   NiÐ  iú   i
   iá  R
   iô  i2   t   seedt   n_power_iteri   gš™™™™™É?t   rtolt   atoli   (   iÐ  iú   (   iô  i2   (   R   R   Rb   t   randnR   R   R   R   R   R   R   t   normR   R   R   (   R!   R"   R1   t   mat1RE   R$   R%   R2   R3   R^   t   usvtt   tolR5   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_svd_compressed3  s*    $'

((c    	      C@  s»   d	 \ }  } t  j j d ƒ j d |  | f d d
 ƒ } t | d d d ƒ\ } } } t | d d d ƒ\ } } } t t  j | | k j ƒ  | | k j ƒ  | | k j ƒ  ƒ ƒ s· t ‚ d  S(   Ni   i   iÒ  t   sizeR
   i   i   Rb   (   i   i   (   i   i   (   R   R   t   RandomStatet   random_sampleR   t   allR8   RL   (	   R!   R"   RD   R2   R3   R^   RT   RU   t   vt2(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt!   test_svd_compressed_deterministicR  s
    *c         C@  sf   t  j |  j | ƒ j | ƒ | ƒ s* t ‚ t | t j | ƒ d t ƒt | t j | ƒ d t ƒd  S(   Nt   check_graph(	   R   t   allcloseR   RL   R   R   t   trilt   FalseR   (   t   pt   lR2   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   _check_lu_result[  s    *c          C@  s¼  t  j d d d d g d d d d g d d d d g d d d d	 g g ƒ }  t  j d d
 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 ƒ } xÆ t |  | g d d g ƒ D]© \ } } t j | d | | f ƒ} t j j | ƒ \ } } } t j j | ƒ \ } }	 }
 t | | d t	 ƒt | |	 d t	 ƒt | |
 d t	 ƒt
 | |	 |
 | ƒ qô Wt  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 ƒ } x‡ t | g d g ƒ D]p \ } } t j | d | | f ƒ} t j j | ƒ \ } } } t j j | ƒ \ } }	 }
 t
 | |	 |
 | ƒ qDWd  S(   Ni   i   iÿÿÿÿi   i   i   iüÿÿÿi   i   i    i   R
   Rr   i   i   i   i   i
   i)   i   i   i   i.   i   i   i   i8   i   i   (   R   t   arrayRW   R   R   R   R   t   luR   Ru   Rx   (   t   A1t   A2R   t   chunkt   dARv   Rw   R2   t   dpt   dlt   dut   A3(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt	   test_lu_1c  s6    $'("Rl   i2   c         C@  su   t  j j d ƒ t  j j d d |  |  f ƒ } t j | d d ƒ} t j j | ƒ \ } } } t | | | | ƒ d  S(   Ni
   i    R
   i   (   i   i   (	   R   R   Rb   t   randintR   R   R   Rz   Rx   (   Rl   R   R~   R   R€   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt	   test_lu_2†  s
    id   iÈ   c         C@  su   t  j j d ƒ t  j j d d |  |  f ƒ } t j | d d ƒ} t j j | ƒ \ } } } t | | | | ƒ d  S(   Ni
   i    R
   i   (   i   i   (	   R   R   Rb   R„   R   R   R   Rz   Rx   (   Rl   R   R~   R   R€   R   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt	   test_lu_3‘  s
    c          @  sÖ   t  j j d d d ƒ }  t j |  d d ƒ‰  t j t ‡  f d †  ƒ t  j j d d d ƒ }  t j |  d d ƒ‰  t j t ‡  f d	 †  ƒ t  j j d d d ƒ }  t j |  d d ƒ‰  t j t ‡  f d †  ƒ d  S(   Ni    i   i
   R
   i   c           @  s   t  j j ˆ  ƒ S(   N(   R   R   Rz   (    (   R~   (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   <lambda>Ÿ  t    i   i   c           @  s   t  j j ˆ  ƒ S(   N(   R   R   Rz   (    (   R~   (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyR‡   £  Rˆ   i   c           @  s   t  j j ˆ  ƒ S(   N(   R   R   Rz   (    (   R~   (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyR‡   §  Rˆ   (   i
   i
   i
   (   i   i   i   (   i
   i   (   i   i   (   i   i   (   i   i   (   R   R   R„   R   R   R   R    t
   ValueError(   R   (    (   R~   s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_lu_errorsœ  s    R   R}   iF   c   
      C@  sh  t  j j d ƒ t  j j d d |  |  f ƒ } t  j j d d |  ƒ } t  j | ƒ } t j | | | f ƒ } t j | | ƒ } t j j | | ƒ } t	 | t
 j j | | ƒ ƒ t	 | j | ƒ | j t ƒ ƒ t  j | ƒ } t j | | | f ƒ }	 t j | | ƒ } t j j |	 | d t ƒ} t	 | t
 j j | | d t ƒƒ t	 |	 j | ƒ | j t ƒ ƒ d  S(   Ni   i   t   lower(   R   R   Rb   R„   R   R   R   R   t   solve_triangularR   R   R   t   astypet   floatRt   R   (
   R   R}   R   t   bt   Aut   dAut   dbt   rest   Alt   dAl(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_solve_triangular_vectorª  s    "c   
      C@  sz  t  j j d ƒ t  j j d d |  |  f ƒ } t  j j d d |  d f ƒ } t  j | ƒ } t j | | | f ƒ } t j | | d f ƒ } t j j | | ƒ } t	 | t
 j j | | ƒ ƒ t	 | j | ƒ | j t ƒ ƒ t  j | ƒ } t j | | | f ƒ }	 t j | | d f ƒ } t j j |	 | d t ƒ} t	 | t
 j j | | d t ƒƒ t	 |	 j | ƒ | j t ƒ ƒ d  S(   Ni   i
   i   R‹   (   R   R   Rb   R„   R   R   R   R   RŒ   R   R   R   R   RŽ   Rt   R   (
   R   R}   R   R   R   R‘   R’   R“   R”   R•   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_solve_triangular_matrixÂ  s    "c   
      C@  sz  t  j j d ƒ t  j j d d |  |  f ƒ } t  j j d d |  |  f ƒ } t  j | ƒ } t j | | | f ƒ } t j | | | f ƒ } t j j | | ƒ } t	 | t
 j j | | ƒ ƒ t	 | j | ƒ | j t ƒ ƒ t  j | ƒ } t j | | | f ƒ }	 t j | | | f ƒ } t j j |	 | d t ƒ} t	 | t
 j j | | d t ƒƒ t	 |	 j | ƒ | j t ƒ ƒ d  S(   Ni   i
   R‹   (   R   R   Rb   R„   R   R   R   R   RŒ   R   R   R   R   RŽ   Rt   R   (
   R   R}   R   R   R   R‘   R’   R“   R”   R•   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_solve_triangular_matrix2Ú  s    "c          @  sð   t  j j d d d	 ƒ }  t  j j d d d ƒ } t j |  d d
 ƒ‰  t j | d d ƒ‰ t j t ‡  ‡ f d †  ƒ t  j j d d d ƒ }  t  j j d d d ƒ } t j |  d d ƒ‰  t j | d d ƒ‰ t j t ‡  ‡ f d †  ƒ d  S(   Ni    i
   i   R
   i   c           @  s   t  j j ˆ  ˆ ƒ S(   N(   R   R   RŒ   (    (   R~   R’   (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyR‡   ÷  Rˆ   i   c           @  s   t  j j ˆ  ˆ ƒ S(   N(   R   R   RŒ   (    (   R~   R’   (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyR‡   ý  Rˆ   (   i
   i
   i
   (   i   i   i   (   i
   i
   (   i   i   (   R   R   R„   R   R   R   R    R‰   (   R   R   (    (   R~   R’   s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_solve_triangular_errorsò  s    c         C@  sô  t  j j d ƒ t  j j d d |  |  f ƒ } t j | | | f ƒ } t  j j d d |  ƒ } t j | | ƒ } t j j | | ƒ } t | t	 j j | | ƒ d t
 ƒt | j | ƒ | j t ƒ d t
 ƒt  j j d d |  d f ƒ } t j | | d f ƒ } t j j | | ƒ } t | t	 j j | | ƒ d t
 ƒt | j | ƒ | j t ƒ d t
 ƒt  j j d d |  |  f ƒ } t j | | | f ƒ } t j j | | ƒ } t | t	 j j | | ƒ d t
 ƒt | j | ƒ | j t ƒ d t
 ƒd  S(   Ni   i
   Rr   i   (   R   R   Rb   R„   R   R   R   t   solveR   R   Ru   R   R   RŽ   (   R   R}   R   R~   R   R’   R“   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt
   test_solve   s$    "%"%"c         C@  s¦   t  j j d ƒ t  j j d d |  |  f ƒ } t j | | | f ƒ } t j j | ƒ } t | t	 j j | ƒ d t
 ƒt | j | ƒ t  j |  d t ƒd t
 ƒd  S(   Ni   i
   Rr   RX   (   R   R   Rb   R„   R   R   R   t   invR   R   Ru   R   R   RŽ   (   R   R}   R   R~   R“   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_inv   s    c         C@  sM   t  j j d ƒ t  j j d d |  |  f ƒ } t  j | ƒ } | j | j ƒ S(   Ni   i   (   R   R   Rb   R„   Rt   R   R   (   Rl   R   t   lA(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   _get_symmat,  s    i   c         C@  s  t  j j d ƒ t |  ƒ } t j | | | f ƒ } t  j j d d |  ƒ } t j | | ƒ } t j j | | d t	 ƒ} t
 | t j j | | d t	 ƒd t ƒt
 | j | ƒ | j t ƒ d t ƒt  j j d d |  d f ƒ } t j | | d f ƒ } t j j | | d t	 ƒ} t
 | t j j | | d t	 ƒd t ƒt
 | j | ƒ | j t ƒ d t ƒt  j j d d |  |  f ƒ } t j | | | f ƒ } t j j | | d t	 ƒ} t
 | t j j | | d t	 ƒd t ƒt
 | j | ƒ | j t ƒ d t ƒd  S(   Ni   i
   t   sym_posRr   i   (   R   R   Rb   RŸ   R   R   R„   R   Rš   R   R   R   Ru   R   R   RŽ   (   R   R}   R   R~   R   R’   R“   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_solve_sym_pos3  s$    (%(%(i   c         C@  sŠ   t  |  ƒ } t j | | | f ƒ } t t j j | ƒ t j j | ƒ d t ƒt t j j | d t ƒt j j | d t ƒd t ƒd  S(   NRr   R‹   (	   RŸ   R   R   R   R   t   choleskyR   Ru   R   (   R   R}   R   R~   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_choleskyS  s    +t   nrowt   ncolc         C@  s×  t  j j d ƒ t  j j d d |  | f ƒ } t  j j d d |  ƒ } t j | | | f ƒ } t j | | ƒ } t  j j | | ƒ \ } } }	 }
 t j j | | ƒ \ } } } } t | | ƒ t | | ƒ | j	 ƒ  |	 k sä t
 ‚ t | |
 ƒ | d  d  … d f | d  d  … d f <t j | | | f ƒ } t j | | ƒ } t  j j | | d t  j t  j ƒ j t |  | ƒ ƒ\ } } }	 }
 |	 | d k sšt
 ‚ t j j | | ƒ \ } } } } | j	 ƒ  |	 k sÓt
 ‚ d  S(   Ni   i   i   t   rcond(   R   R   Rb   R„   R   R   R   t   lstsqR   R8   RL   t   finfot   doublet   epsR   (   R¤   R¥   R}   R   R   R~   R’   RD   R1   t   rankR3   t   dxt   drt   drankt   ds(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt
   test_lstsq\  s(    !!&!c    	      C@  s§  t  j j d ƒ }  t  j j |  d d ƒ\ } } } xmt  j f d d f t  j f d t  j f f g D]9} t j |  d d ƒ} | | _ t j j | ƒ \ } } } t | | ƒ t | j	 t  j
 | ƒ ƒ j	 | ƒ | j	 t j
 | ƒ ƒ j	 | ƒ ƒ t | j j	 | ƒ t  j d ƒ ƒ t | j j	 | ƒ t  j d ƒ ƒ t j |  d d	 ƒ} t  j f d t  j f f | _ t t | ƒ t | ƒ ƒ t t | ƒ t | ƒ ƒ qf Wd  S(
   Nid   i
   t   full_matricesi    R
   (   id   i
   (   i
   (   i
   i
   (   i
   i
   (   R   R   R   R   t   nanR   R   t   _chunksR   R   R   R   R   t   abs(	   RD   R2   R3   t   vR
   R¬   R   R¯   t   dv(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_no_chunks_svdz  s     !#	!"""s   shape, chunks, axisRg   i   iÿÿÿÿt   keepdimsc   	      C@  s€   t  j j |  ƒ } t j | d | ƒ} t  j j | d | d | d | ƒ} t j j | d | d | d | ƒ} t | | ƒ d  S(   NR
   t   ordt   axisR¸   (   R   R   R   R   R   Rg   R   (	   R   R
   Rº   Rg   R¸   RY   t   dt   a_rt   d_r(    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_norm_any_ndim‘  s
    $$s   shape, chunksc      
   C@  sÛ   t  j j |  ƒ } t j | d | ƒ} x­ t t |  ƒ ƒ D]™ } x t t |  ƒ ƒ D]| } | | k rt | | f } n | } t  j j | d | d | d | ƒ}	 t j j | d | d | d | ƒ}
 t |	 |
 ƒ qS Wq: Wd  S(   NR
   R¹   Rº   R¸   (	   R   R   R   R   t   ranget   lenR   Rg   R   (   R   R
   Rg   R¸   RY   R»   t	   firstaxist
   secondaxisRº   R¼   R½   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_norm_any_slice¬  s    $$iþÿÿÿg      à?c   	      C@  s€   t  j j |  ƒ } t j | d | ƒ} t  j j | d | d | d | ƒ} t j j | d | d | d | ƒ} t | | ƒ d  S(   NR
   R¹   Rº   R¸   (   R   R   R   R   R   Rg   R   (	   R   R
   Rº   Rg   R¸   RY   R»   R¼   R½   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_norm_1dimÎ  s
    $$t   frot   nucc   	      C@  s½   t  j j |  ƒ } t j | d | ƒ} | d k sK | d k sK | d k rd | j i d d 6ƒ } n  t  j j | d | d | d | ƒ} t j j | d | d | d | ƒ} t | | ƒ d  S(	   NR
   RÆ   i   iþÿÿÿiÿÿÿÿR¹   Rº   R¸   (   R   R   R   R   R   R   Rg   R   (	   R   R
   Rº   Rg   R¸   RY   R»   R¼   R½   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_norm_2dimæ  s    $$$c         C@  sŠ   t  j j |  ƒ } t j | d | ƒ} t |  ƒ d k r† t | ƒ d k r† t j t ƒ ' t j j	 | d | d | d | ƒWd  QXn  d  S(   NR
   i   R¹   Rº   R¸   (
   R   R   R   R   RÀ   R   R    t   NotImplementedErrorR   Rg   (   R   R
   Rº   Rg   R¸   RY   R»   (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   test_norm_implemented_errors  s
    $(   i   i
   i
   N(   i   i
   (   i   i   i   (   (   i   i   i   i
   (   i   i   i   i   i   (   (   i   i   i   i   i   i
   (   i   i   (   i   i   (   i   i   (   i   i   (   i(   i
   (   i   i
   (   i   i
   (   i
   i   i
   N(   i   i
   i
   N(   i
   i
   i
   N(   i
   i
   (   i
   i   (   i   i   i   i   i   (   i
   i   (   i
   i   (   i
   i   (   i
   i   (   i
   i   (   i
   i   (   i(   i
   (   i   i
   (   i   i
   (   i(   i
   (   i   i
   (   i   i
   (   i(   i
   (   i   i
   (   i   i
   (   i   i
   (   i   i   i   (   (   i   i   i   i
   (   i   i   i   i   i   (   (   i   i   i   i   i   i
   (   i   i   (   i   i   (   i   i   (   i   i   (   i(   i
   (   i   i
   (   i   i
   (   i
   i   i
   N(   i   i
   i
   N(   i
   i
   i
   N(   i
   i
   (   i
   i   (   i   i   i   i   i   (   i   i
   i
   N(   i   i
   (   i   i   i   (   (   i   i   i   i
   (   i   i   i   i   i   (   (   i   i   i   i   i   i
   (   i   i   (   i   i   (   i   i   (   i   i   (   i(   i
   (   i   i
   (   i   i
   (   i
   i   i
   N(   i   i
   i
   N(   i
   i
   i
   N(   i
   i
   (   i
   i   (   i   i   i   i   i   (   i
   i   (   i   i   (   i   i
   (   R   R}   (   i   i
   (   i2   i
   (   iF   i   (   R   R}   (   i   i
   (   i2   i
   (   i2   i   (   R   R}   (   i   i
   (   i2   i
   (   i2   i   (   R   R}   (   i   i
   (   i2   i
   (   R   R}   (   i   i
   (   i2   i
   (   R   R}   (   i   i
   (   i   i   (   R   R}   (   i   i
   (   i   i   (   i   i   (   i   i   (   R¤   R¥   R}   (   i   i
   i   (   id   i
   i
   (   i   (   i   (   i   (   i   (   i   (   i   (   i    (   i   i   (   i   i   (   i   (   i   (   i   i   (   i   i   (   i   i   i   (   i   i   i   (   i   i   i   i   (   i   i   i   i   (   i   i   i   i   i   (   i   i   i   i   i   (   i   (   i   (   i   (   i   (   i   (   i   (   i    (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i   i   (   i   i   (   i   i    (   i   i   i   (   i   i   i   (   i   i   (   i   i   i   i   (   i   i   i   i   (   iÿÿÿÿiþÿÿÿ(;   t
   __future__R    R   t   importorskipR   R   t   scipy.linalgR   t
   dask.arrayRy   R   t   dask.array.linalgR   R   R   R   R   t   dask.array.utilsR   R	   t   markt   parametrizeR   R‰   R6   R   Ru   RA   RH   RJ   RÈ   RK   RV   Ra   t   slowRk   Rq   Rx   Rƒ   R…   R†   RŠ   R–   R—   R˜   R™   R›   R   RŸ   R¡   R£   R°   R·   t   infR¾   RÃ   RÄ   RÇ   RÉ   (    (    (    s;   lib/python2.7/site-packages/dask/array/tests/test_linalg.pyt   <module>   sX  (!.'A	 !!					#	-
	*
	'''	$ $	$ *										