pow, powf, powl - функции
возведения
в степень
Math library (
libm,
-lm)
#include <math.h>
double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);
powf(),
powl():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
Данные
функции
возвращают
значение
x,
возведённое
в степень
y.
При
успешном
выполнении
данные
функции
возвращают
значение
x,
возведённое
в степень
y.
Если
происходит
переполнение
результата,
возникает
ошибка
диапазона,
а функция
возвращает
HUGE_VAL,
HUGE_VALF или
HUGE_VALL,
соответственно,
с
математически
правильным
знаком.
If result underflows, and is not representable, a range error occurs, and 0.0
with the appropriate sign is returned.
Если
x
равно +0 или -0
и
y —
нечётное
целое
меньшее 0, то
генерируется
ошибка
особой
точки и
возвращается
HUGE_VAL,
HUGE_VALF или
HUGE_VALLс тем же
знаком что
и у
x.
Если
x
равно + или -0
и
y — меньше 0
и чётное
целое, то
генерируется
ошибка
особой
точки и
возвращается
+
HUGE_VAL, +
HUGE_VALF или +
HUGE_VALL.
Если
x
равно +0 (-0) и
y —
нечётное
целое
большее 0, то
результат
равен +0 (-0).
Если
x
равно 0 и
y
больше 0 и не
чётное
целое, то
результат
равен +0.
Если
x
равно -1 и
y
стремится
к плюс или
минус
бесконечности,
то
результат
равен 1.0.
Если
x
равно +1, то
результат
равен 1.0 (даже
если
y
равно NaN).
Если
y
равно 0, то
результат
равен 1.0 (даже
если
x
равно NaN).
Если
x —
конечное
значение
меньшее 0 и
y
— конечное
не целое, то
будет
сгенерирована
ошибка
выхода за
пределы
области, а в
качестве
результата
будет
возвращено
NaN.
Если
абсолютное
значение
x
меньше 1 и
y
стремится
к минус
бесконечности,
то
результат
стремится
к плюс
бесконечности.
Если
абсолютное
значение
x
больше 1 и
y
стремится
к минус
бесконечности,
то
результат
равен +0.
Если
абсолютное
значение
x
меньше 1 и
y
стремится
к плюс
бесконечности,
то
результат
равен +0.
Если
абсолютное
значение
x
больше 1 и
y
стремится
к плюс
бесконечности,
то
результат
стремится
к плюс
бесконечности.
Если
x
стремится
к минус
бесконечности
и
y —
нечётное
целое
меньшее 0, то
результат
равен -0.
Если
x
стремится
к минус
бесконечности
и
y — меньше 0
и чётное
целое, то
результат
равен +0.
Если
x
стремится
к минус
бесконечности
и
y —
нечётное
целое
большее 0, то
результат
стремится
к минус
бесконечности.
Если
x
стремится
к минус
бесконечности
и
y — больше 0
и чётное
целое, то
результат
стремится
к плюс
бесконечности.
Если
x
стремится
к плюс
бесконечности
и
y — меньше 0,
то
результат
равен +0.
Если
x
стремится
к плюс
бесконечности
и
y — больше 0,
то
результат
стремится
к плюс
бесконечности.
Except as specified above, if
x or
y is a NaN, the result is a
NaN.
Смотрите
math_error(7), чтобы
определить,
какие
ошибки
могут
возникать
при вызове
этих
функций.
Могут
возникать
следующие
ошибки:
- Ошибка
области: x
является
отрицательным
и y
конечное
нецелое
-
errno
устанавливается
в EDOM.
Вызывается
исключение
неправильной
плавающей
точки ( FE_INVALID).
- Ошибка
особой
точки: x
равно нулю
и y
отрицательно
-
errno
устанавливается
в ERANGE (но
смотрите
ДЕФЕКТЫ).
Возникает
исключение
деления
плавающей
запятой на
ноль ( FE_DIVBYZERO).
- Ошибка
диапазона:
результат
превысил
разрядность
- Значение
errno
устанавливается
в ERANGE.
Возникает
исключение
переполнения
плавающей
запятой (
FE_OVERFLOW).
- Ошибка
диапазона:
результат
исчерпал
степень
- Значение
errno
устанавливается
в ERANGE.
Возникает
исключение
исчерпания
степени
чисел с
плавающей
запятой (
FE_UNDERFLOW).
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
pow(), powf(), powl() |
Безвредность
в нитях |
MT-Safe |
C99, POSIX.1-2001, POSIX.1-2008.
Вариант,
возвращающий
значение
типа
double,
также
соответствует
SVr4, 4.3BSD.
Before glibc 2.28, on some architectures (e.g., x86-64)
pow() may be more
than 10,000 times slower for some inputs than for other nearby inputs. This
affects only
pow(), and not
powf() nor
powl(). This
problem was fixed in glibc 2.28.
A number of bugs in the glibc implementation of
pow() were fixed in glibc
2.16.
In glibc 2.9 and earlier, when a pole error occurs,
errno is set to
EDOM instead of the POSIX-mandated
ERANGE. Since glibc 2.10,
glibc does the right thing.
In glibc 2.3.2 and earlier, when an overflow or underflow error occurs, glibc's
pow() generates a bogus invalid floating-point exception (
FE_INVALID) in addition to the overflow or underflow exception.
cbrt(3),
cpow(3),
sqrt(3)
Русский
перевод
этой
страницы
руководства
был сделан
Alexey, Azamat Hackimov <
[email protected]>, kogamatranslator49
<
[email protected]>, Kogan, Max Is <
[email protected]>, Yuri
Kozlov <
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]