Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
cmathexp()とlog()関数は常に対称ですか?
exp()
log()
そうすればエルゴ
double x; double y = exp(log(x)); assert(x == y);
アサートが失敗することはありますか? その場合: どのような状況で? 有理数 > 0xであると仮定できます。
x
浮動小数点logは 1 対 1 にすることはできません。単調に増加し、 を満たす必要がlog(64) > 4.15ありlog(128) < 4.86ます。64 と 128 の間には 2 52 秒がありますが、4.15 と 4.86 の間には 2 50double秒未満です。その範囲には倍精度対数が同じものが複数あるため、そのうちの少なくとも 1 つで失敗する必要があります。 doubledoublesexp(log(x)) == x
log
log(64) > 4.15
log(128) < 4.86
double
doubles
exp(log(x)) == x