[PYTHON MATRIX-SIG] More naming/module issues

Paul F. Dubois dubois1@llnl.gov
Fri, 6 Sep 1996 09:29:43 -0700


As usual, let me be different.

As elegant as it sounds, Numeric.LinearAlgebra is redundant. There is no
un-Numeric LinearAlgebra unless Python suddenly supports symbolic
computation.
LAPACK represents a certain quality assurance for me. When choosing a
routine from a module called LAPACK, I know I'm getting the right answer.
If other
stuff is mixed in, maybe I'm getting a FastButWrong amateur effort.

On the other hand, I see the virtue of having a tree-like path to find
stuff in that great big catalog of the future. Say,
LinearAlgebra.LAPACK 
LinearAlgebra.NAG
LinearAlgebra.Sparselib
FFT.FFTPACK
FFT.IMSL
FFT.NAG

I don't understand the implications of the package nesting, however. One
wouldn't want to load all of the LinearAlgebra children just because you
wanted one of them.
----------
> From: Michael McLay <mclay@eeel.nist.gov>
> To: matrix-sig@python.org
> Subject: Re: [PYTHON MATRIX-SIG] More naming/module issues
> Date: Friday, September 06, 1996 2:03 AM
> 
> Konrad Hinsen writes:
>  > > Now I'm working out the standard library.  My questions is: How many
>  > > modules should I make and what should they be called?
>  > 
>  > My preference is:
>  > 
>  > > 3) Add them to seperate modules:
>  > > 	Lapack.inverse(matrix), Fftpack.fft(waveform), Ranlib.random(100)
>  > 
>  > However, I'd prefer other names for the modules, and maybe also a
>  > somewhat wider scope. For example, I'd like to have one module for
>  > linear algebra. The standard version would contain the LAPACK
>  > interface, but conceivable someone else could write a compatible
>  > version using a special Cray library or whatever. There could also be
>  > other functions (added later) that are not part of LAPACK. Therefore
>  > the module should not be *called* LAPACK, but LinearAlgebra.
> 
> I agree that new names should be used.  I propose the following
convention 
> be followed so the library that is created makes it easy to find
> general resources, but still retain the ease of use of short hand
> notations.
> 
> The names selected for modules,classes, and functions should be
> spelled out in full for a general package called Numeric.
> 
> 	Numeric.LinearAlgebra
> 	Numeric.FourierTransform
> 	Numeric.RandomNumbers
> 
> I dropped the term Fast from FourierTransform because it seems obvious
> that you would want to do it fast and I don't recall ever hearing
> about anyone using something other than an FFT.  The nature of the
> algorithm used could be incorporated into a docstring, rather than
> encoded in the name.
> 
> Each discipline can now import the fully spelled out name and
> shorten it so it fits the conventional notation for that industry.  
> For instance ComputationalChemistry.fft module might contain the line:
> 
> 	from Numeric.FourierTransform import *
> 	fft = FourierTransform
> 	fft2d = FourierTransform2D
> 
> This notation will make it easier for new users to grasp the
> organization of the language and the library.  Using names like LAPACK
> is not intuitive to a new student.  It will become even less intuitive
> as high level language take over in the role of teaching linear
> algebra.
> 
> 
> Michael
> 
> =================
> MATRIX-SIG  - SIG on Matrix Math for Python
> 
> send messages to: matrix-sig@python.org
> administrivia to: matrix-sig-request@python.org
> =================

=================
MATRIX-SIG  - SIG on Matrix Math for Python

send messages to: matrix-sig@python.org
administrivia to: matrix-sig-request@python.org
=================