³ò
) Jc           @   sm   d  d k  Z d  d k i Z d d	 d „  ƒ  YZ d e f d „  ƒ  YZ e d j o e d d ƒ Z e GHn d S(
   iÿÿÿÿNt   Matrixc           B   sM   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   sN   Make a matrix with nRows rows and nColumns columns.
	   Set entries to zero.
	c         C   s7   t  i d | | f d t ƒ |  _ | |  _ | |  _ d  S(   Nt   shapet   dtype(   t   npt   zerost   floatt   arrayt   nRowst   nColumns(   t   selfR   R   (    (    s   MyMatrix.pyt   __init__   s    !	c         C   s   t  |  i ƒ S(   N(   t   strR   (   R	   (    (    s   MyMatrix.pyt   __str__   s    c         C   s   d t  |  i ƒ S(   Ns   Matrix:
(   R   R   (   R	   (    (    s   MyMatrix.pyt   __repr__   s    c         C   s   |  i  | i  S(   N(   R   (   R	   t   other_matrix(    (    s   MyMatrix.pyt   __add__   s    c         C   s   |  i  | i  S(   N(   R   (   R	   R   (    (    s   MyMatrix.pyt   __sub__   s    c         C   s   t  i |  i | i ƒ S(   N(   R   t   dotR   (   R	   R   (    (    s   MyMatrix.pyt   __mul__   s    c         C   s   t  i |  i ƒ S(   N(   t   LAt   pinvR   (   R	   (    (    s   MyMatrix.pyt   generalized_inverse    s    (
   t   __name__t
   __module__t   __doc__R
   R   R   R   R   R   R   (    (    (    s   MyMatrix.pyR       s   						t   SquareMatrixc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   sr   Make a square matrix with nRows rows and nRows columns.
	   It inherits most of its functions from class Matrix.
	c         C   s   t  i |  | | ƒ d  S(   N(   R    R
   (   R	   R   (    (    s   MyMatrix.pyR
   (   s    c         C   s   t  i |  i ƒ S(   N(   R   t   invR   (   R	   (    (    s   MyMatrix.pyt   inverse+   s    c         C   s   t  i |  i ƒ S(   N(   R   t   eigenvaluesR   (   R	   (    (    s   MyMatrix.pyR   .   s    c         C   s   t  i |  i ƒ S(   N(   R   t   identityR   (   R	   (    (    s   MyMatrix.pyR   1   s    (   R   R   R   R
   R   R   R   (    (    (    s   MyMatrix.pyR   #   s
   			t   __main__i   i   (    (	   t   numpyR   t   numpy.linalgt   linalgR   R    R   R   t   A(    (    (    s   MyMatrix.pys   <module>   s   