sqrt(2) must go

Manu turkeyman at gmail.com
Thu Oct 20 04:12:11 PDT 2011


On 20 October 2011 11:02, Don <nospam at nospam.com> wrote:

> On 20.10.2011 09:47, Manu wrote:
>
>> Many architectures do not support real, and therefore it should never be
>> used implicitly by the language.
>>
>> Precision problems aside, I would personally insist that implicit
>> conversation from any sized int always be to float, not double, for
>> performance reasons (the whole point of a compiled language trying
>> to supersede C/C++).
>>
>
> On almost all platforms, float and double are the same speed.
>

This isn't true. Consider ARM, hard to say this isn't a vitally important
architecture these days, and there are plenty of embedded architectures
that don't support doubles at all, I would say it's a really bad idea to
invent a systems programming language that excludes many architectures by
its design... Atmel AVR is another important architecture.

I maintain that implicit conversion of integers of any length should always
target the same precision float, and that should be a compiler flag to
specify the desired precision throughout the app (possibly defaulting to
double).
If you choose 'float' you may lose some precision obviously, but you
expected that when you chose the options, and did the cast...



> Note that what we're discussing here is parameter passing of single
> values; if it's part of an aggregate (array or struct), the issue doesn't
> arise.
>

Are we? I thought we were discussing implicit conversion of ints to floats?
This may be parameter passing, but also assignment I expect?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20111020/e39d2ca6/attachment.html>


More information about the Digitalmars-d mailing list