[Python-Dev] Re: [Python-checkins] python/dist/src/Objects complexobject.c,2.57,2.58 (original) (raw)

Raymond Hettinger python@rcn.com
Mon, 15 Apr 2002 11:13:13 -0400


[Tim]

Does it make sense to deprecate divmod() and // for complex numbers while leaving % intact?

[GvR] It doesn't, and I've repaired this.

[GvR] However, I'm wondering what to do after we unify all numeric types (if we ever decide to do that, which isn't clear). At that point, should these operators be allowed as long as the imaginary part is zero?

[RDH] Yes.

Ideally, in a unified numeric model, all math operations should accept all numeric types and raise a domain exception (ValueError: math domain error) when an argument falls outside the defined scope just like we do for divide by zero, logs of negative numbers, and inverse trig functions which fall outside a defined domain.

.real, .imag, and .conjugate() should be defined for integers and floats as well as complex numbers: (3).imag --> 0

Likewise, divmod() and // should work for complex numbers where the imaginary part is zero.

Raymond Hettinger