Justin Johansson wrote:
Andrei Alexandrescu Wrote:

Nick Sabalausky wrote:
"Justin Johansson" <n...@spam.com> wrote in message news:haavf1$2gs...@digitalmars.com...
It's a difficult challenge to get high performance, readable and maintainable code out of complex number intensive algorithms. Use of library types for complex numbers has, in my experience been problematic.
Complex numbers should be first class value types I say.

There's been discussion before (I can't find it now, or remember the name for it) of type systems that allow for proper handling of things like m/s vs. m/(s*s) vs inch/min etc. I haven't actually worked with such a feature or with complex/imaginary numbers in any actual code, so I can't be sure, but I've been wondering if a type system like that would be an appropriate (or even ideal) way to handle real/complex/imaginary numbers.
It better be. Complex numbers aren't that complicated of a notion. What's lost in pulling them out of the language is the ability to define literals.

"Now please name five remarkable complex literals."

(re, im) ::= (0, 0), (1,0), (0,1), (1,1), (pi/2, 0), (0, pi/2), 
e_to_the_power_(minus j),
 e_to_the_power_(minus j * pi/2)

Is that what you mean?

(Three of those are real.)

What I meant was that complex literals helped by syntax are seldom likely to improve code quality. Many numeric literals are of questionable taste anyway and should at best defined as symbols. I don't see why complex literals shouldn't follow the same recommendation.


Andrei

Reply via email to