Scroll to navigation

scalb(3) Library Functions Manual scalb(3)

ИМЯ

scalb, scalbf, scalbl - умножает число с плавающей запятой на основание в степени целого числа (УСТАРЕЛИ)

LIBRARY

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);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

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 <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

5 февраля 2023 г. Linux man-pages 6.03