EXPM1

Section: Linux Programmer's Manual (3)
Updated: 2020-06-09
Index JM Home Page
 

名前

expm1, expm1f, expm1l - 引数の指数から 1 を引いた値  

書式

#include <math.h>

double expm1(double x);
float expm1f(float x);
long double expm1l(long double x);

-lm でリンクする。

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

expm1():

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
    || _XOPEN_SOURCE >= 500
    || /* Since glibc 2.19: */ _DEFAULT_SOURCE
    || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

expm1f(), expm1l():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
    || /* Since glibc 2.19: */ _DEFAULT_SOURCE
    || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
 

説明

これらの関数は、以下と等価な値を返す。
    exp(x) - 1

結果の計算は、 x が 0 の近傍で、非常に近い 2 つの数字の引き算のため exp(x) - 1 が不正確になるような場合でも正確となる方法で行われる。  

返り値

成功すると、これらの関数は exp(x) - 1 を返す。

x が NaN の場合、NaN が返される。

x が +0 (-0) の場合、+0 (-0) が返される。

x が正の無限大の場合、正の無限大が返される。

x が負の無限大の場合、-1 が返される。

結果がオーバーフローする場合、範囲エラー (range error) が発生し、 各関数はそれぞれ -HUGE_VAL, -HUGE_VALF, -HUGE_VALL を返す。  

エラー

これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は math_error(7) を参照のこと。

以下のエラーが発生する可能性がある。

範囲エラー (range error)、オーバーフローの場合
errno に ERANGE が設定される (「バグ」の節も参照)。 オーバーフロー浮動小数点例外 (FE_OVERFLOW) が上がる。
 

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
expm1(), expm1f(), expm1l() Thread safety MT-Safe
 

準拠

C99, POSIX.1-2001, POSIX.1-2008.  

バグ

Before glibc 2.17, on certain architectures (e.g., x86, but not x86_64) expm1() raised a bogus underflow floating-point exception for some large negative x values (where the function result approaches -1),

glibc 2.11 あたりより前では、 expm1() は、 x が正の大きな値の場合、期待通りのオーバーフロー例外だけでなく間違って不正な (invalid) 浮動小数点例外を上げ、正の無限大ではなく NaN を返していた。

バージョン 2.11 より前の glibc の実装では、 範囲エラーが発生した場合に、 errno に ERANGE が設定されなかった。  

関連項目

exp(3), log(3), log1p(3)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

expm   無限大   オーバーフロー   double   範囲   Since   versions   方法   range   バグ   浮動   小数点   指数   math   float   long   検査   マクロ   要件   macros   等価   計算   近傍   数字   引き算

Linux マニュアル 一覧

関連するコマンド・関数

expm1.3   expm1f.3   scalb.3   scalbf.3   scalbl.3   ldexp.3
 

Index

名前
書式
説明
返り値
エラー
属性
準拠
バグ
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:20 GMT, October 11, 2026