http://stackoverflow.com/questions/8819738/why-does-double-nan-double-nan-return-false