™N
 &5c       s9     k  Z   k Z  k Z  d  Z  h  d d <d d <d d <d d <Z  d	 d d
 d g Z  h  d d <d d <d d <d d <d d <d d <Z  h  d d <d d <d d <d d <d d <d d <Z  d d g d d g g Z  d „  Z	  d „  Z
 , d „  Z 1 d „  Z 9 d „  Z V d „  Z [ d „  Z | d „  Z ® d d „ Z Ò d d „ Z á d „  Z ô d d „ Z *e d j oŠ +k  l -d „  Z Ze d d g d d  g g ƒ Z [e d d g ƒ Z \e e e ƒ ^e d! Z _e d! Z `e e e ƒ n d" S(#   s   LinearAlgebraErrori    s   fi   s   di   s   Fi   s   Ds   ss   cs   zs   is   lc     s|     d }  d }  xN |  d  rA }  | i ƒ  }  t | t | ƒ }  t | t | ƒ } q! W t	 | | Sd  S(   Ni    i   (
   s   kinds	   precisions   arrayss   as   typecodes   ts   maxs   _array_kinds   _array_precisions   _array_type(   s   arrayss   kinds	   precisions   as   ts   ./Lib/LinearAlgebra.pys   _commonType s   		 	c    s¼      f  } ! xz | d ! rm } " | i ƒ  |  j o& # | t i t i | ƒ ƒ f } n, % | t i t i | ƒ i |  ƒ ƒ f } q W' t	 | ƒ d j o ( | d Sn * | Sd  S(   Ni    i   (
   s   cast_arrayss   arrayss   as   typecodes   types   copys   Numerics	   transposes   astypes   len(   s   types   arrayss   cast_arrayss   as   ./Lib/LinearAlgebra.pys   _castCopyAndTranspose s   	 	&/c     sI   , - x< |  d - r/ } . t | i ƒ d j o / t d ‚ n q Wd  S(   Ni    i   s   Array must be two-dimensional(   s   arrayss   as   lens   shapes   LinAlgError(   s   arrayss   as   ./Lib/LinearAlgebra.pys   _assertRank2, s    	c     sR   1 2 xE |  d 2 r8 } 3 t | i ƒ t | i ƒ j o 4 t d ‚ n q Wd  S(   Ni    s   Array must be square(   s   arrayss   as   maxs   shapes   mins   LinAlgError(   s   arrayss   as   ./Lib/LinearAlgebra.pys   _assertSquareness1 s    	"c 	 	  s§  9 : t  | i ƒ d j } ; | o  < | d  d  … t i f } n = t |  | ƒ > t |  ƒ ? |  i d } @ | i d } A | | i d j o B t d ‚ n C t |  | ƒ } E t | d j o F t i } n H t i } I t | |  | ƒ \ }  } J t i | d ƒ } K | | | |  | | | | d ƒ } L | d d j o M t d ‚ n N | o O t i t i | ƒ ƒ Sn Q t i t i | ƒ ƒ Sd  S(   Ni   i    s   Incompatible dimensionss   ls   infos   Singular matrix(   s   lens   bs   shapes   one_eqs   Numerics   NewAxiss   _assertRank2s   as   _assertSquarenesss   n_eqs   n_rhss   LinAlgErrors   _commonTypes   ts   _array_kinds   lapack_lites   zgesvs   lapack_routines   dgesvs   _castCopyAndTransposes   zeross   pivotss   resultss   copys   ravels	   transpose(	   s   as   bs   one_eqs   n_eqs   n_rhss   ts   lapack_routines   pivotss   resultss   ./Lib/LinearAlgebra.pys   solve_linear_equations9 s*   
 $
c    s'   V W t  |  t i |  i d ƒ ƒ Sd  S(   Ni    (   s   solve_linear_equationss   as   Numerics   identitys   shape(   s   as   ./Lib/LinearAlgebra.pys   inverseV s   c    s  [ \ t  |  ƒ ] t |  ƒ ^ t |  ƒ } _ t d t | } ` t | |  ƒ }  a |  i	 d } b t i d f | ƒ } c t d d | ƒ } d t i | f | ƒ } e t | d j ov f t i } g t i | f | ƒ } h t i | f | ƒ }	 i | d d | |  | | | d | d | | |	 d ƒ }
 n³ l t i } m t i | f | ƒ } n t i | f | ƒ } o | d d | |  | | | | d | d | | d ƒ }
 q t i i t i | d ƒ ƒ o r | } n t | d | } u |
 d d j o v t d ‚ n w | Sd  S(	   Ni    i   i   s   Nf0.0x0.01.0s   infos   Eigenvalues did not converge(   s   _assertRank2s   as   _assertSquarenesss   _commonTypes   ts   _array_types   _array_precisions   real_ts   _castCopyAndTransposes   shapes   ns   Numerics   zeross   dummys   maxs   lworks   works   _array_kinds   lapack_lites   zgeevs   lapack_routines   ws   rworks   resultss   dgeevs   wrs   wis   logical_ands   reduces   equals   LinAlgError(   s   as   ts   real_ts   ns   dummys   lworks   works   lapack_routines   ws   rworks   resultss   wrs   wis   ./Lib/LinearAlgebra.pys   eigenvalues[ s0   :6"c    s=  | €  t  |  ƒ ‚ t |  ƒ ƒ t |  ƒ } „ t d t | } … t | |  ƒ }  † |  i	 d } ‡ t d d | ƒ } ˆ t i | f | ƒ } ‰ t i d f | ƒ } Š t | d j o‘ ‹ t i } Œ t i | f | ƒ }  t i | f | ƒ }	 Ž t i | | f | ƒ }
  | d d | |  | | | d |
 | | | |	 d ƒ } n¸’ t i } “ t i | f | ƒ } ” t i | f | ƒ } • t i | | f | ƒ } – | d d | |  | | | | d | | | | d ƒ } ˜ t i i t i | d ƒ ƒ o ™ | } š | }
 nó œ | d | }  t i  | t i! ƒ }
 ž t i" t i t i | d ƒ d ƒ ƒ } £ x™ t$ t% | ƒ d ƒ d £ r| } ¤ | | d | d | | d | d |
 | d | <¥ | | d | d | | d | d |
 | d | d <q…W¦ | d	 d j o § t' d
 ‚ n ¨ | |
 f Sd S(   sÈ   eigenvectors(a) returns u,v  where u is the eigenvalues and
v is a matrix of eigenvectors with vector v[i] corresponds to 
eigenvalue u[i].  Satisfies the equation matrixmultiply(a, v[i]) = u[i]*v[i]
i    i   i   s   Ns   Vf0.0x0.01.0i   s   infos   Eigenvalues did not convergeN((   s   _assertRank2s   as   _assertSquarenesss   _commonTypes   ts   _array_types   _array_precisions   real_ts   _castCopyAndTransposes   shapes   ns   maxs   lworks   Numerics   zeross   works   dummys   _array_kinds   lapack_lites   zgeevs   lapack_routines   ws   rworks   vs   resultss   dgeevs   wrs   wis   vrs   logical_ands   reduces   equals   arrays   Complexs   nonzeros   inds   ranges   lens   is   LinAlgError(   s   as   ts   real_ts   ns   lworks   works   dummys   lapack_routines   ws   rworks   vs   resultss   wrs   wis   vrs   inds   is   ./Lib/LinearAlgebra.pys   eigenvectors| sD   :6"	* 	9Ac    s{  ® ¯ t  |  ƒ ° |  i d } ± |  i d } ² t |  ƒ } ³ t d t | } ´ t
 | |  ƒ }  µ | o ¶ | } · | } ¸ d } n. º t | | ƒ } » t | | ƒ } ¼ d } ½ t i t | | ƒ f | ƒ }	 ¾ t i | | f | ƒ }
 ¿ d t | | ƒ } À t i | f | ƒ } Á t i | | f | ƒ } Â t | d j oˆ Ã t i } Ä t i t d t | | ƒ d t | | ƒ d ƒ f | ƒ } Å | | | | | |  | |	 |
 | | | | | | d ƒ } nC È t i } É | | | | | |  | |	 |
 | | | | | d ƒ } Ë | d	 d j o Ì t d
 ‚ n Í t  i  t i! |
 ƒ ƒ |	 t  i  t i! | ƒ ƒ f Sd  S(   Ni   i    s   As   Si
   i   i   i   s   infos   SVD did not converge("   s   _assertRank2s   as   shapes   ns   ms   _commonTypes   ts   _array_types   _array_precisions   real_ts   _castCopyAndTransposes   full_matricess   nus   nvts   options   mins   Numerics   zeross   ss   us   maxs   lworks   works   vts   _array_kinds   lapack_lites   zgesvds   lapack_routines   rworks   resultss   dgesvds   LinAlgErrors   copys	   transpose(   s   as   full_matricess   ns   ms   ts   real_ts   nus   nvts   options   ss   us   lworks   works   vts   lapack_routines   rworks   resultss   ./Lib/LinearAlgebra.pys   singular_value_decomposition® s6   
			!?=6c 	   sù   Ò Ó t  |  d ƒ \ } } } Ô | i d } Õ | i d } Ö | t	 i
 i | ƒ } × x\ t t | | ƒ ƒ d × r@ } Ø | | | j o Ù d | | | | <n Û d | | <qr WÜ t	 i t	 i | ƒ | d  d  … t	 i f t	 i | ƒ ƒ Sd  S(   Ni    i   f1.0f0.0(   s   singular_value_decompositions   as   us   ss   vts   shapes   ms   ns   rconds   Numerics   maximums   reduces   cutoffs   ranges   mins   is   dots	   transposes   NewAxis(	   s   as   rconds   us   ss   vts   ms   ns   cutoffs   is   ./Lib/LinearAlgebra.pys   generalized_inverseÒ s    	f1e-10c    s  á â t  |  ƒ ã t |  ƒ ä t |  ƒ } å t | |  ƒ }  æ |  i d } ç t | d j o è t	 i
 } n ê t	 i } ë t i | f d ƒ } ì | | | |  | | d ƒ } í t i i t i | t i d | d ƒ ƒ ƒ d } ï d d | t i i t i |  ƒ ƒ Sd  S(   Ni    i   s   li   f1.0f2.0(   s   _assertRank2s   as   _assertSquarenesss   _commonTypes   ts   _castCopyAndTransposes   shapes   ns   _array_kinds   lapack_lites   zgetrfs   lapack_routines   dgetrfs   Numerics   zeross   pivotss   resultss   adds   reduces	   not_equals
   arrayranges   signs   multiplys   diagonal(   s   as   ts   ns   lapack_routines   pivotss   resultss   signs   ./Lib/LinearAlgebra.pys   determinantá s   5c    s  ô  t  | i ƒ d j } | o  | d d … t i f } n t |  | ƒ |  i d } |  i d } | i d } t | | ƒ } 	| | i d j o 
t d ‚ n t |  | ƒ } t d t | }	 t i | | f | ƒ }
 t i | ƒ |
 d | i d … d | … f <t | |  |
 ƒ \ }  }
 d t | | ƒ t d t | | ƒ t | | ƒ | g ƒ } t i t | | ƒ f |	 ƒ } t i | f | ƒ } t | d j oo t i } t i d t | | ƒ d f |	 ƒ } | | | | |  | |
 | | | d | | | d ƒ } n@ t i" } | | | | |  | |
 | | | d | | d ƒ } | d d j o t d	 ‚ n t i# g  | ƒ } | ow  t i t i% |
 ƒ |  ƒ } !| d
 | j o
 | | j o3 "t i# t i' t i% |
 ƒ | d ƒ g ƒ } n n• $t i t i( |
 ƒ d | … d d … f ƒ } %| d
 | j o
 | | j oB &t i t i' t i( |
 ƒ | d … d d … f d ƒ ƒ } n '| | | d
 t i | t | | ƒ  ƒ f Sd S(   s  solveLinearLeastSquares(a,b) returns x,resids,rank,s 
where x minimizes 2-norm(|b - Ax|) 
      resids is the sum square residuals
      rank is the rank of A
      s is an rank of the singual values of A in desending order

If b is a matrix then x is also a matrix with corresponding columns.
If the rank of A is less than the number of columns of A or greater than
the numer of rows, then residuals will be returned as an empty array
otherwise resids = sum((b-dot(A,x)**2).
Singular values less than s[0]*rcond are treated as zero.
i   Ni    s   Incompatible dimensionsi   i   i   s   infos,   SVD did not converge in Linear Least Squaress   rank()   s   lens   bs   shapes   one_eqs   Numerics   NewAxiss   _assertRank2s   as   ms   ns   n_rhss   maxs   ldbs   LinAlgErrors   _commonTypes   ts   _array_types   _array_precisions   real_ts   zeross   bstars   copys   _castCopyAndTransposes   mins   lworks   ss   works   _array_kinds   lapack_lites   zgelsss   lapack_routines   rworks   rconds   resultss   dgelsss   arrays   residss   ravels   xs   sums	   transpose(   s   as   bs   rconds   one_eqs   ms   ns   n_rhss   ldbs   ts   real_ts   bstars   lworks   ss   works   lapack_routines   rworks   resultss   residss   xs   ./Lib/LinearAlgebra.pys   linear_least_squaresô sH   
 /?!):3
!71!Bs   __main__c    sâ  -/d GH1t  |  | ƒ } 2| t |  | ƒ } 3| GH6t |  ƒ } 7t |  | ƒ t |  i	 d ƒ } 8| GH;t
 |  ƒ } =t |  ƒ \ } } >| | } ?| GHAt | ƒ } Bt |  | ƒ | | } C| GHFt |  ƒ \ } }	 }
 G|  t i | |	 |
 ƒ } H| GHKt |  ƒ } Lt |  | ƒ t |  i	 d ƒ } M| GHPt |  ƒ } Q| t i | ƒ } R| GHTt |  | ƒ \ } } } } U| t |  | ƒ } V| GHW| |  i	 d GHX| |	 GHd  S(   Ns,   All numbers printed should be (almost) zero:i    (   s   solve_linear_equationss   as   bs   xs   matrixmultiplys   checks   inverses   a_invs   identitys   shapes   eigenvaluess   evs   eigenvectorss   evaluess   evectorss	   transposes   singular_value_decompositions   us   ss   vts   Numerics   generalized_inverses   a_ginvs   determinants   dets   multiplys   reduces   linear_least_squaress	   residualss   ranks   sv(   s   as   bs   xs   checks   a_invs   evs   evaluess   evectorss   us   ss   vts   a_ginvs   dets	   residualss   ranks   svs   ./Lib/LinearAlgebra.pys   test-s8   ##f1.0f2.0f3.0f4.0x0.00.0N(   s   Numerics   copys   lapack_lites   LinAlgErrors   _lapack_types   _lapack_letters   _array_kinds   _array_precisions   _array_types   _commonTypes   _castCopyAndTransposes   _assertRank2s   _assertSquarenesss   solve_linear_equationss   inverses   eigenvaluess   eigenvectorss   singular_value_decompositions   generalized_inverses   determinants   linear_least_squaress   __name__s   *s   tests   arrays   as   b(    s   ./Lib/LinearAlgebra.pys   ? s:   			-??!2$6
-!