アプリ版:「スタンプのみでお礼する」機能のリリースについて

今日は!
Windowsの関数は、例えばlog(1000)の計算を比較的短時間で行います。
この計算は、テーラー級数を使用しているのでしょうか
否、他の計算方法を使用しているのでしょうか?
もしテーラー級数を使用しているのであれば、その収束はどの様に解決している
のでしょうか?
Q1)log(1000)の場合について、具体的にC++のコードでご回答頂けますと
 大変有り難いです。

以上、宜しくお願いします。

A 回答 (2件)

WindowsはFPUのFYL2X命令を呼び出しているだけだと思いますが、


こんなアルゴリズムなら知ってます。

1) 数を 1~2 の範囲に正規化する(2^n をかける)。

2) x ← x^2
3) x >= 2 なら 1 を出力し x ←x/2, x < 2 なら 0 を出力する。

2), 3) を一定回数繰り返し、出力を繋げて数字を作る。

こんなかんじ

0.110111100101010101

#先頭の 0. は固定

これは log2(x) の2進表現になってます。
    • good
    • 0

今どき log の計算にテイラー級数なんか使わないと思う.



CPU が持っている「log を計算する」命令を直接発行すればいいだけだし.
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!