Hacker News new | ask | show | jobs
by TallGuyShort 3076 days ago
There is inaccuracy, but the point is that it tracks how much inaccuracy there might be. I picture this as being similar to how computers can't trust time for all sorts of reasons, so Google's Spanner uses time ranges and estimates of potential inaccuracy to make it possible to work with that. It will truncate, so you won't really have 1/3, but you'll know it's approximately 0.333, definitely more than 6/20 but definitely less than 7/20, for instance, and if you ever exceed certain bounds of certainty the calculation and all resulting calculations are flagged as not being that trustable. As is my understanding from the article, anyway.
2 comments

> but you'll know it's approximately 0.333, definitely more than 6/20 but definitely less than 7/20, for instance

What strikes me as odd is that in my intro course to numerical methods taught how to calculate floating point error bounds when introducing the concept of floating point numbers, including how errors propagated with each flop.

Yeah I doubt this is anything novel in the purely mathematical realm. It sounds like what's patented is a practical design for doing this on a chip.

Not sure if you were taught a different method, but I envision this being similar to counting "significant digits" in scientific notation, and it sounds like that's very similar to the approach he took. I wonder if that explains there statements about tracking to the last "digit". They obviously can't do that for irrational number, so maybe they mean the last "significant" digit as far as the underlying floating point implementation is concerned.

Yes, this is my exact understanding of the article too.

So in that case, "[it] allows representation of real numbers accurate to the last digit" doesn't really hold true.

I think you're reading it wrong. I think the intended meaning was that it's accurate for real numbers up to, but not including, the final digit"

That's how I read it.

Many real numbers have an infinite number of digits
I think you're missing the point. Using the example above. 1/3 has no final digit. 0.333333 repeating infinitely.

So how do you then store this number to the final digit or final -1 digit using this mechanism?