ó
+»Ã[c           @   st   d  d l  Z  d  d l Td „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z	 d „  Z
 d „  Z d S(   iÿÿÿÿN(   t   *c    
         s˜  t  d ƒ }  x$ t d ƒ D] } d |  | | f <q W|  t d ƒ k sK t ‚ |  t  |  ƒ k sc t ‚ t  d d ƒ ‰  ˆ  j s‚ t ‚ t  d d d g d d d g d d d	 g g ƒ } t | ƒ t t d d
 ƒ ƒ k sÙ t ‚ d | d  <d! | j k sø t ‚ t  d d d g d d d g g ƒ ‰ t  d d g d d g d d g g ƒ } ˆ | t  d d g d d g g ƒ k sqt ‚ |  | | |  k o| k n s›t ‚ t j t ‡  f d †  ƒ d
 d d g d d d g d d d g g } t  | ƒ } | j	 ƒ  | k st ‚ | t
 t | ƒ ƒ k s t ‚ t  | d t ƒ} | t
 t | ƒ ƒ k sPt ‚ | d t
 t | d ƒ ƒ k svt ‚ | d
 d
 | k o•| k n s t ‚ ˆ  j d k sµt ‚ ˆ  j d k sÊt ‚ d | _ d | _ t | j ƒ d k s÷t ‚ ˆ ˆ d ˆ k st ‚ t j t ‡  ‡ f d †  ƒ t |  |  ƒ d k sIt ‚ t  d d g d d g d d g d d g g ƒ ‰ t  d
 d g ƒ } ˆ | t  d d d d g ƒ k s³t ‚ t d ƒ } t | d d t d ƒ ƒ d k sét ‚ d t d ƒ d d t d ƒ k st ‚ t d ƒ d
 t d ƒ k s5t ‚ t j t ‡ f d †  ƒ t d ƒ } t  | ƒ }	 d | d" <| |	 k s‚t ‚ t | ƒ s”t ‚ d  S(#   Ni   i   i   i   i   i   i   i   i	   i
   i    iÿÿÿÿiýÿÿÿi   iúÿÿÿi'   iôÿÿÿc              s   ˆ  ˆ  S(   N(    (    (   t   A2(    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   <lambda>   s    i   i   i(   i<   iF   iP   iZ   t
   force_typey              ð?c              s   ˆ ˆ  S(   N(    (    (   R   t   A4(    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyR   #   s    iöÿÿÿc              s   ˆ  d S(   Ni   (    (    (   t   A7(    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyR   ,   s    iœÿÿÿ(   i   i   (   i   i   (   i    i    (   t   matrixt   ranget   eyet   AssertionErrort   _matrix__datat   listt   pytestt   raisest
   ValueErrort   tolistt   evalt   reprt   floatt   rowst   colst   lent   sumt   onest   zerost
   randmatrixt   nstr(
   t   A1t   it   A3t   A5t   lt   A6t   xt   A8t   A9t   A10(    (   R   R   R   s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   test_matrix_basic   sZ    0'
$'.**&*		0(**"
c       
      s^  t  d d d g d d d g d d d	 g g ƒ ‰  t  d d d d d g ƒ }  ˆ  d  d  … d  d  … f ˆ  k ss t ‚ ˆ  d  d  … d f t  d g d g d g g ƒ k s­ t ‚ ˆ  d d  d  … f t  d d d	 g g ƒ k sá t ‚ ˆ  d d … d d … f t  d d g d d	 g g ƒ k s!t ‚ |  d d !t  d d g ƒ k sFt ‚ t j t ‡  f d
 †  ƒ t  d ƒ } ˆ  | d  d  … d  d  … f <| d  d  … d  d  … f t  d d d g d d d g d d d	 g g ƒ k sÙt ‚ t  d d d g g ƒ | d d  d  … f <| t  d d d g d d d g d d d	 g g ƒ k s=t ‚ t  d g d g d g g ƒ | d  d  … d f <| t  d d d g d d d g d d d g g ƒ k s§t ‚ t  d d g d d g g ƒ | d  d … d  d … f <| t  d d d g d d d g d d d g g ƒ k st ‚ d |  d d +|  t  d d d d d g ƒ k sKt ‚ t j t ƒ + ˆ  d  d  … d f | d d  d  … f <Wd  QXt j t ƒ 1 ˆ  d  d  … d  d  … f | d d d … f <Wd  QXd | d  d  … d f <| t  d d d g d d d g d d d g g ƒ k st ‚ d | d  d  … d  d  … f <x  | D] } | d k s>t ‚ q>Wd  S(   Ni   i   i   i   i   i   i   i   i	   c              s   ˆ  d  d  … d d … f S(   Ni   i   (    (    (   t   A(    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyR   ?   s    i
   i   i   i    i   i   i   i   i   i   i   i   i(   (   R   R	   R   R   t
   IndexErrorR   (   t   VR   R!   (    (   R&   s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   test_matrix_slices3   sP    (:4@%((.4',2c          C   s–   t  d d g d d g g ƒ }  |  d |  |  k s8 t ‚ |  d |  |  |  k sV t ‚ |  d t |  ƒ k sr t ‚ |  d t |  |  ƒ k s’ t ‚ d  S(   Ni   i   i   i   iÿÿÿÿiþÿÿÿ(   R   R	   t   inverse(   R&   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   test_matrix_powere   s
    c          C   sH  t  d d g d d g d d g g ƒ }  |  j |  j ƒ  k oe t  d d d g d d d g g ƒ k n sp t ‚ t |  d d ƒ |  t  d d g d d g d d g g ƒ k s³ t ‚ d d g } t | d d ƒ | d d g k sç t ‚ t t d ƒ d d d g ƒ t  d d d d g d d d d g d d d d g g ƒ k sDt ‚ d  S(   Ni   i   i   i   i   i   i    (   R   t   Tt	   transposeR	   t   swap_rowt   extendR   (   R&   R   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   test_matrix_transforml   s    'I3c          C   s½   t  d t d g d t g g ƒ }  |  j ƒ  t  t d d ƒ d g d t d d ƒ g g ƒ k sd t ‚ |  j ƒ  |  j k o® t  t d d ƒ d g d t d d ƒ g g ƒ k n s¹ t ‚ d  S(   Ni   i    i   iÿÿÿÿ(   R   t   jt	   conjugatet   mpcR	   t   transpose_conjt   H(   R&   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   test_matrix_conjugatev   s    "B,c          C   s‡  t  d d d g ƒ t d d d g d d d g d d d g g ƒ k sK t ‚ t d d ƒ }  |  j d k rx |  j d k s~ t ‚ x  |  D] } | d k s… t ‚ q… Wt d d ƒ } | j d k rÎ | j d k sÔ t ‚ x  | D] } | d k sÛ t ‚ qÛ Wt d ƒ t d ƒ k st ‚ t d ƒ } t	 d ƒ t | | d | d g | d | d | d g | d | d | d g g ƒ k sƒt ‚ d  S(   Ni   i   i   i    i
   i   i   (
   t   diagR   R	   R   R   R   R   R   t   mpft   hilbert(   R   t   aR   t   one(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   test_matrix_creation|   s    K$$ c          C   s*  t  d d g d d g d d g g ƒ }  t |  d ƒ d k sB t ‚ t |  t ƒ d k s] t ‚ t |  d ƒ t d	 ƒ k s~ t ‚ t d ƒ d
 k s– t ‚ d d d d g } t | d ƒ d k sÃ t ‚ t t | d ƒ d ƒ d k sç t ‚ t t | d ƒ d ƒ d k st ‚ t | t ƒ d k s&t ‚ d  S(   Ni   iþÿÿÿiýÿÿÿiÿÿÿÿi   i   i   t   Fi   i   i   iôÿÿÿi   i
   gPÃþ…z$,@g%^Ì(@i   (   R   t   mnormR	   t   inft   sqrtt   normt   round(   R&   R!   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt
   test_normsŒ   s    '!$$c          C   s*  t  d d d d d g ƒ }  |  t  d g d g d g d g d g g ƒ k sQ t ‚ |  d d k sg t ‚ t |  j ƒ d k s‚ t ‚ t |  ƒ t t d ƒ ƒ k s¦ t ‚ d |  d <d |  d <|  d d k sÐ t ‚ t |  ƒ t |  j ƒ k oö d k n st ‚ |  j |  t  d g g ƒ k s&t ‚ d  S(	   Ni    i   i   i   i   i   iöÿÿÿir   (   R   R	   R   R
   R   R   R,   (   R!   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   test_vectorš   s    6$

1c          C   sJ   t  d ƒ }  |  j ƒ  } |  | k s* t ‚ d | d <|  | k sF t ‚ d  S(   Ni   i    (   i    i    (   R   t   copyR	   (   R&   t   B(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   test_matrix_copy¦   s
    
c          C   sw   y d d  l  }  Wn t k
 r$ d  SXd d g d d g d d g g } |  j | ƒ } t | ƒ t | ƒ k ss t ‚ d  S(   Niÿÿÿÿi   i   i   i   i   i   (   t   numpyt   ImportErrort   arrayR   R	   (   RH   R   R:   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   test_matrix_numpy­   s    !(   R   t   mpmathR%   R)   R+   R0   R6   R<   RC   RD   RG   RK   (    (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_matrices.pyt   <module>   s   
	/	2		
					