std.range.iota enhancement: supporting more types (AKA issue 10762)
Joseph Rushton Wakeling
joseph.wakeling at webdrake.net
Tue Dec 24 04:58:31 PST 2013
On 24/12/13 11:38, Francesco Cattoglio wrote:
>> Ah, nice. There's an unstated assumption here - adding inc n times is the same
>> as adding n * inc.
> Right, completely missed that. I guess checking a few test cases at compile time
> is the best one can do. Checking for every n could take some infinite amount of
> time :P
Example case:
iota(x, y, (x - y) / N)
... where x and y are floating point and N is anything other than a power of 2.
You will probably wind up with cases where you get an unexpected extra point
on the end that is (x - y - tinyEpsilon).
DMD may be more prone to this than GDC/LDC. I once ran into a very amusing
error with DMD (not using iota) when I tried to traverse the closed interval
[0.0, 1.0] in increments of 0.1.
More information about the Digitalmars-d
mailing list