Complex numbers (was Re: Roadmap proposal for 3.10/4.0)

Martin Kuball martinkuball at web.de
Tue Oct 17 17:07:00 UTC 2006


Am Tuesday, 17. October 2006 11:52 schrieb Bert Freudenberg:
> Am 17.10.2006 um 03:45 schrieb Ken Dickey:
> > Greetings,
> >
> > I'd like to raise the idea of changing the complex number code in
> > 3.10/4.0.
> >
> > See change set at:
> > 	http://bugs.impara.de/view.php?id=3311
> >
> >
> > Current (3.8/3.9):
> >   2i isNumber. "false"
> >   -4 ln. "NaN"
> >   -4 sqrt. "exception"
> >
> >  Alternate Code:
> >   2i isNumber. "true"
> >   -4 ln. "(1.38629436111989 +3.141592653589793i)"
> >   -4 sqrt. "2.0i"
> >
> >
> > I consider this a "community issue".
> >
> > Questions:
> >   - Are there users of complex numbers (does anyone care)?
> >   - Assuming yes, are there objective criteria for choosing between
> > alternate
> > implementations?
> >    + behavior/completeness/test-cases
> >    + performance (I suspect that "the wrong answer fast" is not the
> > Smalltalk
> > way as we can always augment the primOps)
> >    + complex number user community vote
> >    + other...?
> >
> > I am actually agnostic as to which code base gets chosen, but we
> > really should
> > get the answers right.
>
> Well, in best Smalltalk tradition I would vote for the alternate
> code. It's similar to fractional arithmetic ( 3 / 4 ). Yes, fractions
> bite some newbies, but they learn to use #// or #asFloat fast enough.
> Same here - if you need an error when taking a negative's square
> root, send #asFloat.
>
> It's also a bit similar to Smalltalk being one of the few systems
> with correct integers, where a bug like this is not possible:
>
> http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-
> it-nearly.html
>
> I'd like to have no arbitrary limits, like forbidding to take the
> logarithm of negative numbers.

And if complex is a loadable module people not having it in their image 
will get the exceptions while others get the full power of complex 
numbers. I would like that.

Martin



More information about the Squeak-dev mailing list