[PYTHON MATRIX-SIG] * and / operators (was Re: Let's get going)

Dave Forrest forrest@rose.rsoc.rockwell.com
Tue, 12 Sep 1995 08:34:38 -0500

[Heartwarming personal intro - skip if you're not interested]

Hi, I'm Dave Forrest with Rockwell Space Ops. Co.  A few of you have
met my colleagues Robin Friedrich, Greg Boes, and Charlie Fly.  We are
working on ground-based simulation, monitoring, and analysis software
for the Space Shuttle.  So, we have mostly an engineering/physics/math
bias in our use of Python - although we're watching the python GUI work
with keen interest.  We love this language!

[Real comments - start reading here]

First off I'd like to add another vote for * being a matrix multiply,
rather than elementwise.  As for /, however, that doesn't really have
meaning for matrices.  When we built a C++ Matrix class, we only
defined / for element-wise division by a scalar.  It works quite
nicely. We end up with something like this:
	Matrix operator/(Matrix, scalar)
	Matrix operator*(Matrix, Matrix)
	Matrix operator*(Matrix, scalar)  <- elementwise muliplication by scalar

Note that this avoids the sticky situation with inversion of matrices -
we found it better to leave that for derived classes so that people
could implement different inversion routines that capitalize on
any a_priori knowledge of what's in the Matrix.

	e.g. class SquareMatrix( Matrix ):
		def inv():

That being said, I would like to see elementwise multiplication, etc.
in there somewhere - but we use them far less frequently than real
matrix operations.

MATRIX-SIG  - SIG on Matrix Math for Python

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