巨大な計算の文脈では、私は計算中の計算時間の合計時間を見積もります。これを行うために、時間を開始時間と比較して時間を取得し、それを既に計算された比で割ります。しかし、私は驚いています:いいえoperator * (boost::time_duration, double)
が存在します!なぜboost :: time_durationは実数による乗算を意味しないのですか?
は私が書くために期待したものの、このexempleを参照してください。
boost::posix_time::ptime t0 = boost::posix_time::microsec_clock::local_time();
for(unsigned long int i = 0; i < num_iterations; ++i)
{
//
// An iteration of my algorithm
//
boost::posix_time::ptime t = boost::posix_time::microsec_clock::local_time();
boost::posix_time::time_duration d = t - t0;
boost::posix_time::time_duration expected_d = d * ((double)n/(double)i);
}
利用できる唯一のオペレータがoperator * (boost::time_duration, int)
です。私の質問はなぜですか?分数で乗算を実装しないのに十分な理由はありますか? boost
名前空間に自分自身を実装するのは悪い習慣ですか?
浮動小数点数は損失を意味します – sehe