$Id: README,v 1.11 2000/07/26 20:58:27 hzhu Exp $

       MatPy -- Matrix package for Python with MatLab-like interface 
                     http://MatPy.sourceforge.net
    
           (C) 2000 Huaiyu Zhu <hzhu@users.sourceforge.net>
    
                     GNU Public License version 2
                (http://www.gnu.org/copyleft/gpl.txt)
    

MatPy is a python package that provides MatLab-like interface for linear
algebra and plotting wrapped around the Numeric, Gnuplot and SpecialFuncs
packages.  The expressions involving matrices and vectors resemble written
mathematics.

The following are some highlights (as compared with Numeric package):

  o row vector = 1xn matrix, col vector = nx1 matrix
  o 1x1 matrix becomes number
  o slicing A[:,0], A[0,:] gives col and row vectors
  o assembles block matrices from submatrices
  o A+B, A-B, A*B, A/B and A**n are as in linear algebra
  o matrix functions expm, sqrtm, ...
  o complex matrices behave correctly for both matrix and element functions.
  o provide special methods for element-wise operations
  o easy interface to gnuplot
  o accepts NaN and Inf
  o a MatLab-like interactive console (with help, demo, ...)
  o front end to special functions from cephes
  o classes of probability distributions
  o user specified format for matrix elements



Background:
----------

Python is an elegant OO programming language, but its Numeric package has an
interface geared towards multiarrays, which is somewhat tricky for numerical
linear algebra.  On the other hand MatLab (or its open source cousin Octave)
are well tailored for such tasks.  It is not clear to me how to interface
python with Octave.  So I wrote this package to provide a MatLab-like
interface wrapped around Numeric.



Installation, tests and examples:
---------------------------------

See the file INSTALL for details.  But if you are lucky, typing 
    make install
would install the package, run all the tests, generates all the
documentation and install all the documentations.

Please let me know on which platform it runs or if it is having problems.
Thank you.



Implementation:
--------------

A package of several wrapper classes on top of the Numeric modules MLab,
RandomArray and LinearAlgebra and the Gnuplot package.

The implementation guidelines:
  o Make the interface as close to MatLab as reasonable.
  o Use as much of Numeric implementation as possible.
  o Avoid explicit for loops as much as possible

The current implementation has the following problems:

  o Many methods and functions need to defined.  (Each is quite simple but
    there are hundreds of them).
  o Not enough test routines to test all the possible special cases.
  o Excessive conversion with conditional statements.



Development and contributions:
-----------------------------

This is an Open Source project.  Any contribution is welcome: comments,
suggestions, codes, questions, whatever.

Volunteer developers wanted!  You can contribute code or patches to me by
email (hzhu@users.sourceforge.net). 

If you join the team you can check in CVS by yourself.  Try SourceForge
http://sourceforge.net to figure out how to be a member and how to use CVS,
and/or contact me at hzhu@users.sourceforge.net if you are interested.



More info in other files:
------------------------

	INSTALL - installation instructions
	CHANGES - what has changed in each version
	STATUS	- current development status
	TODO	- plans for the future
	CREDITS	- where it is due
	Notes	- checklist for each release
	Makefile - meant for machines, but read it if you have to.