Also, thought this would be of general interest on Hacker News, so I submitted it: https://news.ycombinator.com/item?id=7286926.
On Sun, Feb 23, 2014 at 1:28 PM, Stefan Karpinski <ste...@karpinski.org>wrote: > This is a lovely blog post. I've given a few talks on floating-point > arithmetic using Julia for live coding and demonstrations. The fact that > there is a next and previous floating point number – with nothing in > between – always blows people's minds, even though this is an immediate and > fairly obvious consequence of there only being a finite number of floats. > Internalizing that fact is, imo, the key to understanding many of the > unintuitive aspects of floating point – and this post is an excellent > exposition of that fact. > > I'm also increasingly convinced that if you're using eps, you're probably > doing it wrong. You should instead rely on the quantized nature of floats > like your correct stopping criterion and _middle algorithm do. The pending > "intuitive" float range > algorithm<https://github.com/JuliaLang/julia/blob/adff4353ef3f50e8ffa1bebc857c40c10454f150/base/range.jl#L116-L157>, > for example, is completely epsilon-free. Even the usage nextfloat and > prevfloat is just an optimization, allowing the algorithm to skip trying to > "lift" the start and step values when there's no possible chance of it > working. > > Next time I give a floating point talk, I'm going to give this blog post > as suggested further reading! > > On Sat, Feb 22, 2014 at 8:52 PM, Jason Merrill <jwmerr...@gmail.com>wrote: > >> I'm working on a series of blog posts that highlight some basic aspects >> of floating point arithmetic with examples in Julia. The first one, on >> bisecting floating point numbers, is available at >> >> http://squishythinking.com/2014/02/22/bisecting-floats/ >> >> The intended audience is basically a version of me several years ago, >> early in physics grad. school. I wrote a fair amount of basic numerical >> code then, both for problem sets and for research, but no one ever sat me >> down and explained the nuts and bolts of how computers represent numbers. I >> thought that floating point numbers were basically rounded off real numbers >> that didn't quite work right all the time, but were usually fine. >> >> In the intervening years, I've had the chance to work on a few algorithms >> that leverage the detailed structure of floats, and I'd like to share some >> of the lessons I picked up along the way, in case there's anyone else >> reading who is now where I was then. >> >> Some of the material is drawn from a talk I gave at the Bay Area Julia >> Users meetup in January, on the motivations behind PowerSeries.jl >> > >