Пространства имён
Варианты
Действия

std::log

Материал из cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
Общие математические функции
Функции
Основные операции
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Экспоненциальные функции
(C++11)
(C++11)
log
(C++11)
(C++11)
Степенные функции
(C++11)
(C++11)
Тригонометрические и гиперболические функции
(C++11)
(C++11)
(C++11)
Ошибка и гамма функции
(C++11)
(C++11)
(C++11)
(C++11)
Операции целочисленного округления с плавающей запятой
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Функции манипуляции с плавающей запятой
(C++11)(C++11)
(C++11)
(C++11)
Классификация/Сравнение
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Макро-константы
(C++11)(C++11)(C++11)(C++11)(C++11)
 
Определено в заголовочном файле <cmath>
float       log(float arg );
(1)
double      log(double arg );
(2)
longdouble log(longdouble arg );
(3)
double      log( Integral arg );
(4) (начиная с C++11)
1-3) Вычисляет натуральный (по основанию e) логарифм числа arg.
4) Несколько перегрузок или шаблонов функций принимающих аргумент любого из интегральных типов. Эквивалентно 2) (аргумент приводится к double).

Содержание

[править]Параметры

arg значение вещественного типа или интегрального типа

[править]Возвращаемое значение

При отсутствии ошибок, возвращается натуральный (по основанию e) логарифм arg (то есть ln(arg) или log
e
(arg)
).

При возникновении domain-ошибки, возвращается определяемое реализацией значение (NaN если поддерживается)

При возникновении pole-ошибки, возвращается -HUGE_VAL, -HUGE_VALF или -HUGE_VALL.

[править]Ошибки

Ошибки возникают в соответствии с определением math_errhandling

Domain-ошибка возникает, если arg меньше нуля.

Pole-ошибка возникает, если arg равен нулю.

Если реализации поддерживает IEEE вещественную арифметику (IEC 60559):

  • Если аргумент равен ±0, возвращается -∞ и FE_DIVBYZERO возникает.
  • Если аргумент равен 1, возвращается +0
  • Если аргумент отрицательный, возращается NaN и FE_INVALID возникает.
  • Если аргумент равен +∞, возвращается +∞
  • Если аргумент является NaN, возвращается NaN

[править]Пример

#include <iostream>#include <cmath>#include <cerrno>#include <cstring>#include <cfenv>#pragma STDC FENV_ACCESS ONint main(){std::cout<<"log(1) = "<< std::log(1)<<'\n'<<"логарифм 125 по основанию 5 равен "<< std::log(125)/std::log(5)<<'\n';// граничные случаиstd::cout<<"log(1) = "<< std::log(1)<<'\n'<<"log(+Inf) = "<< std::log(INFINITY)<<'\n';// обработка ошибокerrno=0;std::feclearexcept(FE_ALL_EXCEPT);std::cout<<"log(0) = "<< std::log(0)<<'\n';if(errno==ERANGE)std::cout<<" errno == ERANGE: "<<std::strerror(errno)<<'\n';if(std::fetestexcept(FE_DIVBYZERO))std::cout<<" FE_DIVBYZERO raised\n";}

Возможный вывод:

log(1) = 0 логарифм 125 по основанию 5 равен 3 log(1) = 0 log(+Inf) = inf log(0) = -inf errno == ERANGE: Numerical result out of range FE_DIVBYZERO raised

[править]См. также

(C++11)(C++11)
вычисляет общий (с основанием 10) логарифм (log10(x))
(функция)[править]
(C++11)(C++11)(C++11)
логарифм по основанию 2 данного числа (log2(x))
(функция)[править]
(C++11)(C++11)(C++11)
натуральный логарифм (по основанию e) заданного числа плюс 1 (ln(1+x))
(функция)[править]
(C++11)(C++11)
возвращает e в заданной степени (ex)
(функция)[править]
комплексный натуральный логарифм с ветвью, обрезанной по отрицательной действительной оси
(шаблон функции)[править]
применяет функцию std::log к каждому элементу valarray
(шаблон функции)[править]
close