パスワードを忘れた? アカウント作成
573745 journal

ttの日記: [lame4] pow075

日記 by tt
そんなわけで、x^(3/4)を計算する際に、sqrt()を使わないですむようにコードを書いてみる。

基本的にはただの二項展開である。ただし、浮動小数点フォーマットの特徴(仮数、指数に分解すると、仮数部は1から2の間になる)を使うことで、多項式の次数を下げることをやっている。って、実は午後のこ~だで使っているのとほとんど同じアルゴリズムだったりするのですけどね。

まあ、午後のこ~だはアセンブラで書いてるけど、こっちはCで書いてるとか、多項式の係数を調整してちょっと精度を上げてるとかの細かい変更はあるけど。こういう基本計算は、この辺を除くと誰が書いても同じになっちゃいますよね…

てのはさておき。

このコードにより、予想通りG4マシン上で大幅な速度改善(14%)を実現できた。めでたし。またi386系のマシンでもFPUしかないマシンでは速くなる。でも、流石にSSEや3DNow!には負けてるみたい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

読み込み中...