先日の f(f(x)) == -x で気づいたことなんだが。
numeric_limits
その証拠に:
for( double d = numeric_limits<double>::min() ; d!=0 ; d/=2 ){ cout << d << endl; }
とかいう計算をすると、2.22507e-308 から 4.94066e-324 まで 53個ほどの数字が出る。
逆に。
最大値の方は numeric_limits
cout << numeric_limits<double>::max()*2 << endl;
とやると、一発で無限になる。
いずれも マイクロソフトコンパイラと gcc の両者で試した。同じ結果だった。
まあ理屈はわからないでもないと言いたいところだが、やっぱりちゃんとはわかってない。
あと。それとは関係のない話だけど。
numeric_limits
例えば:
int の min_value は INT_MIN で、int の positive_min は 1。
double の min_value は -DBL_MAX で、double の positive_min は DBL_MIN。
という具合に。
#写真と本文は関係ありません。