8byteのdouble型の0より大きい数字の最小値

1-e323。
浮動小数点型に丸め誤差が含まれるのは百も承知だったけど、それなのに、今、これのせいで非常に困っている。1-e323って、意外と大きい。logとったらたったの-743.7469247408213よ?(doubleの精度で。)
面倒だけど、問題を回避できるようにコードを書き直すしかない。。初歩的なミスをした自分が悪いのだけど。しかし、面倒だ。。。

==追記。==

往々にしてある話だが、実際直してみたら簡単に終わった。案ずるよりも産むが易し的な。

==追追記。==

上記の問題は簡単に解決したけど、他にもバグがあった。途中でlog(0)*0を計算してるとこがあった。MatlabさんはInf*0=NaNと解釈なさるらしい。まあそりゃそうか。今回は、Infのほうが強いケースだったので、Inf*0=Infになってもらいます。こんな初歩的なミスに、気づくのに約三時間かかってるって、、、。集中してないと時間はあっという間に過ぎる、、、。とりあえず、せっかくなので、if x==0; x=1-e323; end というコードをはさんで対処しときました。
今日実装してたプログラムは、とある音響モデルの学習&観測信号とモデルgivenのときの尤度を出すプログラム。いつもは音響モデルにHMMつかってたから、HTKで楽できたけど、自前で書くと大変ね。すごいよHTK