std::log
Материал из cppreference.com
Defined in header <cmath>
|
||
float log( float arg ); |
(1) | |
double log( double arg ); |
(2) | |
long double log( long double 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 ON int 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
[править] См. также
вычисляет общие (базовые 10) логарифм (log10(x)) Оригинал: computes common (base 10) logarithm (log10(x)) Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) | |
(C++11) |
логарифм по основанию 2 из заданного числа Оригинал: base 2 logarithm of the given number Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C++11) |
натуральный логарифм (на базе е) 1 плюс заданное число Оригинал: natural logarithm (to base e) of 1 plus the given number Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
возвращает е в данной степени (ex) (функция) | |
Комплекс натуральный логарифм с разрезов вдоль отрицательной действительной оси Оригинал: complex natural logarithm with the branch cuts along the negative real axis Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
применяет функцию std::log к каждому элементу valarray Оригинал: applies the function std::log to each element of valarray Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
Справка по C — log
|