次の各数式を C の同等のステートメントに変換するにはどうすればよいですか?
1 / (x^2 + y^2)
(b^2 - 4ac) の平方根
次の各数式を C の同等のステートメントに変換するにはどうすればよいですか?
1 / (x^2 + y^2)
(b^2 - 4ac) の平方根
1.0 / (pow(x,2) + pow(y,2))
sqrt(pow(b,2) - 4*a*c)
pow()
とsqrt()
機能のマニュアルを参照してください。
x*x
の代わりに書くこともできますpow(x, 2)
。どちらもまったく同じ結果とパフォーマンスになります (コンパイラーは、関数のpow
機能と最適化方法を認識しています)。
(コメント者向け)
GCC は、これらの関数の両方に対してまったく同じアセンブラー コードを出力します。
double pow2_a(double x) {
return pow(x, 2);
}
double pow2_b(double x) {
return x * X;
}
アセンブラ:
fldl 4(%esp)
fmul %st(0), %st
ret