Movement against float.init being nan

claptrap clap at trap.com
Mon Aug 22 15:04:25 UTC 2022


On Sunday, 21 August 2022 at 17:56:58 UTC, drug007 wrote:
> On 8/21/22 20:28, claptrap wrote:
>> On Sunday, 21 August 2022 at 16:51:51 UTC, Walter Bright wrote:
>>> Consider the following pattern, which doesn't appear
>>>
>>>
>>> 1. x is default initialized to NaN. bar(x) produces a NaN 
>>> result on everything dependent on x. User knows there's a 
>>> problem.
>>>
>>> 2. x is default initialized to 0. bar(0) may exhibit 
>>> problems, but these problems won't necessarily be noticed.
>> 
>> This is the problem, you suggest that if a variable is zero 
>> initialised in error the problems it causes "wont necessarily" 
>> be noticed.
>> 
>> I'm saying that's not true, I'm saying it will almost always 
>> be noticed.
>> 
>> 
>> 
>
> It will be noticed but what price? You've initialized all vars 
> to 0 so how do you know that this exactly initialization to 
> zero is wrong?

You dont initialise all variables to zero, Ive just looked at 
some om my code and in 4000 lines i found two default init ints 
and maybe 50+ explicitly initialised. You're just inventing 
nonsense scenarios.

And seriously if you're looking a variable and dont know what 
value it should be initialised too you literally *dont know what 
your doing*.


> To detect it you should track down manually checking the 
> intermediate results that is manually calculate results and 
> compare to what you get. It takes much more time than checking 
> if the value is NaN.

Occasionally you might have to do a bit of mental arithmetic, but 
not often, I'm seriously wondering why you think it's so hard?





More information about the Digitalmars-d mailing list