exp
、 expf
、 expl
指数を計算します。
構文
double exp(
double x
);
float exp(
float x
); // C++ only
long double exp(
long double x
); // C++ only
float expf(
float x
);
long double expl(
long double x
);
#define exp(z) // Requires C11 or higher
パラメーター
x
自然対数の底 e の指数を取る浮動小数点値。
戻り値
正常に処理された場合、exp
関数は、浮動小数点パラメーター x
の指数値を返します。 つまり、結果は ex
になります。ここで、e は自然対数の底です。 オーバーフローの場合、この関数は INF
(無限) を返し、アンダーフローの場合、exp
は 0 を返します。
入力 | SEH 例外 | _matherr 例外 |
---|---|---|
± Quiet NaN (不確定) | なし | _DOMAIN |
± Infinity | INVALID |
_DOMAIN |
x ≥ 7.097827e+002 |
INEXACT +OVERFLOW |
OVERFLOW |
x ≤ -7.083964e+002 |
INEXACT +UNDERFLOW |
UNDERFLOW |
exp
関数には、ストリーミング SIMD 拡張命令 2 (SSE2) を使用する実装があります。 SSE2 実装の使い方の詳細および制約については、「_set_SSE2_enable
」を参照してください。
解説
C++ ではオーバーロードが可能であるため、exp
または long double
の引数を取る float
のオーバーロードを呼び出すことができます。 C プログラムでは、<tgmath.h>
マクロを使用してこの関数を呼び出す場合を除き、exp
では常に double
を受け取って返します。
<tgmath.h>
のexp
マクロを使用する場合、引数の型によって、選択される関数のバージョンが決まります。 詳細については、「ジェネリック型数値演算」を参照してください。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
要件
機能 | 必須の C ヘッダー | 必須の C++ ヘッダー |
---|---|---|
exp 、 expf 、 expl |
<math.h> |
<cmath> または <math.h> |
exp マクロ |
<tgmath.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
// crt_exp.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 2.302585093, y;
y = exp( x );
printf( "exp( %f ) = %f\n", x, y );
}
exp( 2.302585 ) = 10.000000