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));