浮動小数点数が0かどうか

たとえば 1 / x をするときに x == 0.0 だと困るな、と if(x == 0.0) return ... なんて書いたときに、-Wfloat-equalを付けているからだと思うんだけど「warning: comparing floating point with == or != is unsafe」という警告が出るので、 abs(x) < EPSILON の形に書き換えないといけないのかな、EPSILONはいくらにすればいいんだろう、などと考えていたのだけども。

methane
@nishio fpclassify(x) == FP_ZERO とか

http://twitter.com/methane/status/7463715253

とりあえずこれを使うことにしたのでメモ。後でじっくり考える。