名前空間
変種
操作

log, logf, logl

提供: cppreference.com
< c‎ | numeric‎ | math
 
 
 
一般的な数学関数
関数
基本操作
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数関数
(C99)
(C99)
log
(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       logf( float arg );
(1) (C99およびそれ以降)
double      log( double arg );
(2)
long double logl( long double arg );
(3) (C99およびそれ以降)
ヘッダ <tgmath.h> で定義
#define log( arg )
(4) (C99およびそれ以降)
1-3) arg の (e を底とする) 自然対数を計算します。
4) 型総称マクロ。 arglong double 型の場合は logl が呼ばれます。 そうでなく、 arg が整数型または double 型の場合は log が呼ばれます。 そうでなければ logf が呼ばれます。 arg が複素数または虚数の場合、マクロは対応する複素数の関数 (clogf, clog, clogl) を呼びます。

目次

[編集] 引数

arg - 浮動小数点値

[編集] 戻り値

エラーが発生しなければ、 arg の (e を底とする) 自然対数 (ln(arg) または log
e
(arg)
) が返されます。

定義域エラーが発生した場合、処理系定義の値 (サポートされていれば NaN) が返されます。

極エラーが発生した場合、 -HUGE_VAL-HUGE_VALF または -HUGE_VALL が返されます。

[編集] エラー処理

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

arg がゼロより小さい場合、定義域エラーが発生します。

arg がゼロの場合、極エラーが発生するかもしれません。

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

  • 引数が ±0 であれば、 -∞ が返され、 FE_DIVBYZERO が発生します。
  • 引数が 1 であれば、 +0 が返されます。
  • 引数が負であれば、 NaN が返され、 FE_INVALID が発生します。
  • 引数が +∞ であれば、 +∞ が返されます。
  • 引数が NaN であれば、 NaN が返されます。

[編集]

#include <stdio.h>
#include <math.h>
#include <float.h>
#include <errno.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
int main(void)
{
    printf("log(1) = %f\n", log(1));
    printf("base-5 logarithm of 125 = %f\n", log(125)/log(5));
    // special values
    printf("log(1) = %f\n", log(1));
    printf("log(+Inf) = %f\n", log(INFINITY));
    //error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("log(0) = %f\n", log(0));
    if(errno == ERANGE) perror("    errno == ERANGE");
    if(fetestexcept(FE_DIVBYZERO)) puts("    FE_DIVBYZERO raised");
}

出力:

log(1) = 0.000000
base-5 logarithm of 125 = 3.000000
log(1) = 0.000000
log(+Inf) = inf
log(0) = -inf
    errno == ERANGE: Numerical result out of range
    FE_DIVBYZERO raised

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.12.6.7 The log functions (p: 244-245)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • F.10.3.7 The log functions (p: 522)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12.6.7 The log functions (p: 225)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • F.9.3.7 The log functions (p: 459)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.5.4.4 The log function

[編集] 関連項目

(10 を底とする) 常用対数 (log10(x)) を計算します
(関数) [edit]
(C99)(C99)(C99)
2を底とする対数 (log2(x)) を計算します
(関数) [edit]
(C99)(C99)(C99)
指定した値に 1 を加えた値の (e を底とする) 自然対数 (ln(1+x)) を計算します
(関数) [edit]
(C99)(C99)
ex 乗 (ex) を計算します
(関数) [edit]
(C99)(C99)(C99)
複素対数関数を計算します
(関数) [edit]