scalb, scalbf, scalbl -
умножает
число с
плавающей
запятой на
основание
в степени
целого
числа
(УСТАРЕЛИ)
Math library (
libm,
-lm)
#include <math.h>
[[deprecated]] double scalb(double x, double exp);
[[deprecated]] float scalbf(float x, float exp);
[[deprecated]] long double scalbl(long double x, long double exp);
scalb():
_XOPEN_SOURCE >= 500
|| /* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
scalbf(),
scalbl():
_XOPEN_SOURCE >= 600
|| /* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
Эти
функции
умножают
свой
первый
аргумент
x
на
FLT_RADIX
(обычно, 2),
возведённый
в степень
exp,
то есть:
x * FLT_RADIX ** exp
Определение
значения
FLT_RADIX можно
получить
включив
файл
<float.h>.
При
успешном
выполнении
данные
функции
возвращают
x *
FLT_RADIX **
exp.
Если
значение
x
или
exp равно
NaN, будет
возвращено
NaN.
Если
x
стремится
к плюс
бесконечности
(минус
бесконечности)
и
exp — не
минус
бесконечность,
то
возвращается
плюс
бесконечность
(минус
бесконечность).
Если
x
равно +0 (-0), и
exp
не
положительная
бесконечность,
то
возвращается
+0 (-0).
If
x равно
нулю и
exp —
положительная
бесконечность,
то будет
сгенерирована
ошибка
выхода за
пределы
области, а в
качестве
результата
будет
возвращено
NaN.
Если
x
равно
бесконечности,
а
exp —
отрицательной
бесконечности,
то будет
сгенерирована
ошибка
выхода за
пределы
области, а в
качестве
результата
будет
возвращено
NaN.
Если в
результате
превышена
разрядность,
то
возникает
ошибка
диапазона
и функции
возвращают
HUGE_VAL,
HUGE_VALF или
HUGE_VALL,
соответственно,
с тем же
знаком что
и
x.
Если
результат
исчерпал
степень,
генерируется
ошибка
диапазона,
а функции
возвращают
0 с тем же
знаком что
и
x.
Смотрите
math_error(7), чтобы
определить,
какие
ошибки
могут
возникать
при вызове
этих
функций.
Могут
возникать
следующие
ошибки:
- Ошибка
области: x
равно 0, и exp —
положительная
бесконечность,
или x —
положительная
бесконечность
и exp —
отрицательная
бесконечность,
а другой
аргумент
не NaN.
-
errno
устанавливается
в EDOM.
Вызывается
исключение
неправильной
плавающей
точки ( FE_INVALID).
- Ошибка
диапазона,
переполнение
- Значение
errno
устанавливается
в ERANGE.
Возникает
исключение
переполнения
плавающей
запятой (
FE_OVERFLOW).
- Ошибка
диапазона,
исчерпана
степень
- Значение
errno
устанавливается
в ERANGE.
Возникает
исключение
исчерпания
степени
чисел с
плавающей
запятой (
FE_UNDERFLOW).
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
scalb(), scalbf(), scalbl() |
Безвредность
в нитях |
MT-Safe |
Функция
scalb()
определена
в POSIX.1-2001, но
помечена
как
устаревшая.
Из POSIX.1-2008
удалено
описание
scalb(),
рекомендуется
использовать
scalbln(3),
scalblnf(3) или
scalblnl(3). Функция
scalb() впервые
появилась
в 4.3BSD.
Функции
scalbf()
и
scalbl() не
стандартизованы;
несмотря
на это,
scalbf()
есть в
нескольких
системах
Before glibc 2.20, these functions did not set
errno for domain and range
errors.
ldexp(3),
scalbln(3)
Русский
перевод
этой
страницы
руководства
был сделан
Alexander Golubev <
[email protected]>, Azamat Hackimov
<
[email protected]>, Hotellook, Nikita
<
[email protected]>, Spiros Georgaras <
[email protected]>, Vladislav
<
[email protected]>, Yuri Kozlov <
[email protected]>
и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]