函式
<cmath> <ctgmath>

log1p

     double log1p  (double x);      float log1pf (float x);long double log1pl (long double x);
     double log1p (double x);      float log1p (float x);long double log1p (long double x);     double log1p (T x);           // additional overloads for integral types
計算對數加一
返回一加 x自然對數

x 的量級很小時,logp1 可能比 log(1+x) 更精確。

標頭檔案 <tgmath.h> 提供了此函式的型別通用宏版本。
此標頭檔案 (<cmath>) 為整數型別提供了額外的過載:這些過載在計算前有效地將 x 轉換為 double(為任何整數型別T 定義)。

引數

x
要計算其對數的值。
如果引數小於 -1,則會發生定義域錯誤

返回值

(1+x)自然對數
如果 x 小於 -1,會導致定義域錯誤
如果 x-1,可能會導致極點錯誤(取決於庫的實現)。

如果發生定義域錯誤
- 並且 math_errhandling 設定了 MATH_ERRNO:全域性變數 errno 會被設定為 EDOM
- 並且 math_errhandling 設定了 MATH_ERREXCEPT:將引發 FE_INVALID

如果發生極點錯誤
- 並且 math_errhandling 設定了 MATH_ERRNO:全域性變數 errno 被設定為 ERANGE
- 並且 math_errhandling 設定了 MATH_ERREXCEPT:將引發 FE_DIVBYZERO

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* log1p example */
#include <stdio.h>      /* printf */
#include <math.h>       /* log1p */

int main ()
{
  double param, result;
  param = 1.0;
  result = log1p (param);
  printf ("log1p (%f) = %f.\n", param, result );
  return 0;
}

輸出

log1p (1.000000) = 0.693147


另見