range behaviour

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Thu May 15 06:10:28 PDT 2014


On Thursday, 15 May 2014 at 13:01:34 UTC, Ola Fosheim Grøstad 
wrote:
> On Thursday, 15 May 2014 at 12:34:49 UTC, Dicebot wrote:
>> I think it is your turn to make a counter-example ;)
>
> I've given 2 examples that no compiler can get at… because they 
> lack contextual knowledge. ;)

If compiler lacks contextual knowledge, than only means that 
range is not actually semantically equivalent to a loop. Which is 
quite possible if you start considering something like SIMD, this 
is true.

What is wrong is assumption that such kinds of loops are anything 
but tiny minority and this warrants generic "ranges can never be 
as fast as loops" statement.

Btw,

>  Floating point math is inaccurate, that means the compiler 
> will have to guess what kind of accuracy you are happy with…

AFAIK it is actually not true. Floating point standard defines 
basic precision guarantees and compilers are free to make any 
adjustments outside of those basics. In your example you need to 
verify generated assembly anyway, loop or range.


More information about the Digitalmars-d mailing list