expexpfexpl

指数を計算します。

構文

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++ ヘッダー
expexpfexpl <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

関連項目

数値演算と浮動小数点のサポート
loglogflog10log10f
_CIexp