Flonums
fl=?, fl>?, fl>=?, flflonum, flodd?, fleven?
flfinite?, flinfinite?, flnan?, flmax, flmin, fl+, fl-, fl*, fl/, denominator, numerator を実装。
C++ 上で +inf.0 を
Object::makeFlonum(1.0 / 0.0);
と表現している部分が
division by zero in ‘1.0e+0 / 0.’
と g++ さんに警告を受ける。オンラインになったら(この日記を書いている時点ではオフライン)調べよう。浮動小数の基礎を理解できていない予感。
追記
こんなの見つけた。ポータブルではないっぽい。
printf("[%f]\n", NAN); printf("[%f]\n", strtod("NAN", 0)); printf("[%f]\n", nan("")); printf("[%f]\n", INFINITY); printf("[%f]\n", -INFINITY); printf("[%f]\n", strtod("+inf", 0)); printf("[%f]\n", strtod("-inf", 0));