pow、powf
更新 : 2007 年 11 月
x の y 乗を計算します。
double pow(
double x,
double y
);
double pow(
double x,
int y
); // C++ only
float pow(
float x,
float y
); // C++ only
float pow(
float x,
int y
); // C++ only
long double pow(
long double x,
long double y
); // C++ only
long double pow(
long double x,
int y
); // C++ only
float powf(
float x,
float y
);
パラメータ
x
底。y
指数。
戻り値
xy の値を返します。オーバーフローやアンダーフローの場合、エラー メッセージが出力されます。
x および y の値 |
pow 関数の戻り値 |
---|---|
x < > 0、y = 0.0 |
1 |
x = 0.0、y = 0.0 |
1 |
x = 0.0、y < 0 |
INF |
解説
pow 関数は、x の y 乗を計算します。
pow 関数では、1.0E100 などの 264 を超える浮動小数点整数値は認識されません。
pow には、SSE2 (Streaming SIMD Extensions 2) を利用する実装が用意されています。SSE2 実装の使用に関する情報と制限については、「_set_SSE2_enable」を参照してください。
C++ ではオーバーロードが可能であるため、pow のさまざまなオーバーロードを呼び出すことができます。C プログラムでは、pow は常に 2 つの倍精度浮動小数点数型の値を受け取り、1 つの倍精度浮動小数点数型の値を返します。
Visual C++ 2005 では、ISO 標準にさらに準拠するために大きく変更されています。pow(int, int) のオーバーロードは、使用できなくなりました。このオーバーロードを使用している場合、コンパイラは C2668 を発生することがあります。この問題を回避するには、最初のパラメータを double、float、または long double にキャストします。
必要条件
ルーチン |
必須ヘッダー |
---|---|
pow, powf |
<math.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのすべてのバージョン。
使用例
// crt_pow.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 2.0, y = 3.0, z;
z = pow( x, y );
printf( "%.1f to the power of %.1f is %.1f\n", x, y, z );
}
出力
2.0 to the power of 3.0 is 8.0