std.complex

Stewart Gordon smjg_1998 at yahoo.com
Wed Jan 1 04:29:42 PST 2014


On 19/11/2013 02:03, Andrei Alexandrescu wrote:> On 11/18/13 5:44 PM, 
Craig Dillabaugh wrote:
<snip>
>> Is there any reason why complex numbers in D's standard lib must
>> be of non-integral types?  I believe in C++ the type is optimized
>> for floating point values, but allows other types.
>
> The simple reason is we couldn't find appropriate applications.
<snip>

I don't understand.  At the moment Complex appears to me to be 
type-agnostic - as long as a type supports the standard arithmetic 
operators and assignment of the value 0 to it, it will work.  The only 
thing preventing it from working at the moment is this line

     struct Complex(T)  if (isFloatingPoint!T)

So why do you need an appropriate application in order not to have this 
arbitrary restriction?  Or have I missed something?

It isn't just integer types.  Somebody might want to use complex with a 
library (fixed-point, arbitrary precision, decimal, etc.) numeric type. 
  Fractal generators, for example, are likely to use this a lot.

Or even more exotically, use Complex!(Complex!real) to implement 
hypercomplex numbers.

Stewart.


More information about the Digitalmars-d mailing list