[PYTHON MATRIX-SIG] Let's get going

Guido van Rossum guido@CNRI.Reston.VA.US
Tue, 12 Sep 1995 21:22:17 -0400

> Speaking of complex numbers: has it ever been considered to make
> them built-in objects in Python? This would simplify the matrix
> implementation, and also make the math functions behave more
> reasonably (i.e. sqrt(-1.) would return i instead of causing
> an exception). It can't be much work and would be very useful
> for numerical work.

Hm.  I think it *would* be much work, since the standard C math
library doesn't have any functions working on complex numbers.

I have a specific objection against making sqrt(-1) returning a
complex number.  In Python, as a rule, the *type* of a function's
return value may depend on the *type* of its argument(s), but not in
their *value*.  Even though there is nothing (or at least very little)
in the language's implementation that enforces this, it is a
consistent convention throughout the language. It even has one
important visible consequence: 1/3 is calculated as truncating, as in
C (though it truncates towards -infinity rather than towards 0),
rather than returning a floating point value if the result cannot be
represented as an integer.

I believe this is an important property -- it makes reasoning about
the types of variables/arguments/functions in a Python program easier
(and sooner or later, this reasoning is going to be done by programs
as well as by people).

--Guido van Rossum <guido@CNRI.Reston.VA.US>
URL: <http://www.python.org/~guido/>

(I have more to say about the matrix discussion but I need some more
time to digest everything that's been said.)

MATRIX-SIG  - SIG on Matrix Math for Python

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