Hello:
On 10/06/12 01:57, Andrew Wiley wrote:
On Sat, Jun 9, 2012 at 4:53 PM, Andrew Wiley<[email protected]> wrote:
On Sat, Jun 9, 2012 at 11:57 AM, Kevin<[email protected]> wrote:
On Sat 09 Jun 2012 14:59:21 EDT, Jerome BENOIT wrote:
On 09/06/12 20:48, Kevin wrote:
On 09/06/12 14:42, Minas wrote:
With
ints, the best we can do is 0. With floats, NaN makes it better.
With the logic that NaN is the default for floats, 0 is a very bad
choice for ints. It the worst we could do. Altough I understand that
setting it to something else like -infinity is still not a good
choice.
Is it just me but do ints not have infinity values?
in Mathematics yes, but not in D.
I think ints should
default to about half of their capacity (probably negative for
signed).
This would be machine depends, as such it should be avoided.
This way you are unlikely to get an off-by-one for an uninitialized
values.
something as a Not an Integer NaI should be better.
I just don't think it is a good idea to add more metadata to ints.
I agree. With floats, NaN is implemented in hardware. The compiler doesn't
have to check for NaN when emitting assembly, it just emits operations
normally and the hardware handles NaN like you'd expect.
If we tried to add a NaN-like value for integers, we would have to check
for it before performing integer math. Even with value range propagation, I
think that would injure integer math performance significantly.
I see. So the alternative, to get a kind of NaN effect, would be to set integers
to their hardware extremum (INT_MAX,SIZE_MAX,...). But this option is hardware
dependent, so zero as default for integers sounds the best option.
Jerome
Crap, my apologies for responding with HTML.