名前空間
変種
操作

exp, expf, expl

提供: cppreference.com
< c‎ | numeric‎ | math
 
 
 
一般的な数学関数
関数
基本操作
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数関数
exp
(C99)
(C99)
(C99)
(C99)
冪関数
(C99)
(C99)
三角関数と双曲線関数
(C99)
(C99)
(C99)
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
最も近い整数
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
浮動小数点操作関数
(C99)(C99)
(C99)
(C99)
分類
(C99)
(C99)
(C99)
(C99)(C99)
マクロ定数
 
ヘッダ <math.h> で定義
float       expf( float arg );
(1) (C99およびそれ以降)
double      exp( double arg );
(2)
long double expl( long double arg );
(3) (C99およびそれ以降)
ヘッダ <tgmath.h> で定義
#define exp( arg )
(4) (C99およびそれ以降)
1-3) e (ネイピア数 2.7182818) の arg 乗を計算します。
4) 型総称マクロ。 arglong double 型の場合は expl が呼ばれます。 そうでなく、 arg が整数型または double 型の場合は exp が呼ばれます。 そうでなければ expf が呼ばれます。 arg が複素数または虚数の場合、このマクロは対応する複素数の関数 (cexpf, cexp, cexpl) を呼びます。

目次

[編集] 引数

arg - 浮動小数点値

[編集] 戻り値

エラーが発生しなければ、 e を底とする arg の指数 (earg
) が返されます。

オーバーフローによる値域エラーが発生した場合、 +HUGE_VAL+HUGE_VALF または +HUGE_VALL が返されます。

アンダーフローによる値域エラーが発生した場合、 (丸めの後の) 正しい結果が返されます。

[編集] エラー処理

math_errhandling で規定されている通りにエラーが報告されます。

処理系が IEEE 浮動小数点算術 (IEC 60559) をサポートしている場合、

  • 引数が ±0 であれば、 1 が返されます。
  • 引数が -∞ であれば、 +0 が返されます。
  • 引数が +∞ であれば、 +∞ が返されます。
  • 引数が NaN であれば、 NaN が返されます。

[編集] ノート

IEEE 互換の double 型に対して、 709.8 < arg であればオーバーフローが保証され、 arg < -708.4 であればアンダーフローが保証されます。

[編集]

#include <stdio.h>
#include <math.h>
#include <float.h>
#include <errno.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
int main(void)
{
    printf("exp(1) = %f\n", exp(1));
    printf("FV of $100, continuously compounded at 3%% for 1 year = %f\n",
            100*exp(0.03));
    // special values
    printf("exp(-0) = %f\n", exp(-0.0));
    printf("exp(-Inf) = %f\n", exp(-INFINITY));
    //error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("exp(710) = %f\n", exp(710));
    if(errno == ERANGE) perror("    errno == ERANGE");
    if(fetestexcept(FE_OVERFLOW)) puts("    FE_OVERFLOW raised");
}

出力例:

exp(1) = 2.718282
FV of $100, continuously compounded at 3% for 1 year = 103.045453
exp(-0) = 1.000000
exp(-Inf) = 0.000000
exp(710) = inf
    errno == ERANGE: Numerical result out of range
    FE_OVERFLOW raised

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.12.6.1 The exp functions (p: 242)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • F.10.3.1 The exp functions (p: 520)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12.6.1 The exp functions (p: 223)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • F.9.3.1 The exp functions (p: 458)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.5.4.1 The exp function

[編集] 関連項目

(C99)(C99)(C99)
2x 乗 (2x) を計算します
(関数) [edit]
(C99)(C99)(C99)
ex 乗から 1 を引いた値 (ex-1) を計算します
(関数) [edit]
(C99)(C99)
(e を底とする) 自然対数 (ln(x)) を計算します
(関数) [edit]
(C99)(C99)(C99)
eを底とする複素指数関数を計算します
(関数) [edit]