Complex number functions for std.math

James Dunne james.jdunne at gmail.com
Sun Apr 9 00:11:51 PDT 2006


Don Clugston wrote:
> James Dunne wrote:
> 
>> Don Clugston wrote:
>>
>>> Norbert Nemec wrote:
>>>
>>>> (Sorry for writing "complex" instead of the monstrosity "creal". My
>>>> fingers just don't obey me when I command them to write about a
>>>> "complex real" number. Of course, "creal" could also stand for "really
>>>> complex". But then "real" should be renamed into "cnreal", standing for
>>>> "not really complex"...)
>>>
>>>
>>> It is a bit of an oxymoron. I do like the idea of having 'complex' as 
>>> a standard alias in std.math. It should operate almost as a reserved 
>>> word, users should not be defining it to be anything other than creal.
>>> But I would not like to have to type "imaginary" instead of "ireal" 
>>> -- it's just too long. Any ideas on that one?
>>>
>>
>> Here's what I've devised for a floating-point type system similar to D's:
>>
>>    single - real single-precision (32-bit) IEEE 754 floating point
>>   isingle - imaginary single-precision (32-bit) IEEE 754 floating poi$
>>   csingle - complex single
>>
>>    double - real double-precision (64-bit) IEEE 754 floating point
>>   idouble - imaginary double-precision (64-bit) IEEE 754 floating poi$
>>   cdouble - complex double
>>
>>  extended - real extended-precision (80-bit) IEEE 754 floating point
>> iextended - imaginary extended-precision (80-bit) IEEE 754 floating point
>> cextended - complex extended
>>
>>     float - alias for  single
>>    ifloat - alias for isingle
>>    cfloat - alias for csingle
>>
>> Notably, the float has been renamed to single, and real has been 
>> renamed to extended.  Float still lurks around as an alias for single 
>> though.
> 
> 
> Something that I *really* like about 'real' is that it's short, so it 
> becomes used by default. I think with your naming scheme, everyone would 
> use double by default.

Brevity is ... wit.

> If we could start afresh, the best way I think would be to have single, 
> double, extended, and have 'float' as an alias for extended. 
> Unfortunately, 'float' is too heavily entrenched as a low-precision 
> floating point number.

I agree with your assesment on 'float'.  Sometimes traditions just have 
to be broken though.  .NET did it when assigning new meaning to the word 
'assembly'; I remember at first I was completely lost.

Thanks for the input!

-- 
Regards,
James Dunne



More information about the Digitalmars-d mailing list