hypot - функция, вычисляющая расстояния на евклидовой
hypot(3)
функция, вычисляющая расстояния на евклидовой
Other Alias
hypotf, hypotl
ОБЗОР
#include <math.h>
double hypot(double x, double y);
float hypotf(float x, float y);
long double hypotl(long double x, long double y);
Компонуется при указании параметра -lm.
Требования макроса тестирования свойств для glibc
(см. feature_test_macros(7)):
hypot():
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
или
cc -std=c99
hypotf(),
hypotl():
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE
|| _POSIX_C_SOURCE >= 200112L;
или
cc -std=c99
ОПИСАНИЕ
Эти функции возвращают sqrt(
x*
x+
y*
y). Это длина гипотенузы
прямоугольного треугольника с катетами
x и
y, или расстояние от начала
координат до точки (
x,
y).
Вычисление выполняется без ненадлежащего переполнения или потери значимости
при промежуточных шагах вычисления.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении функции возвращают длину прямоугольного треугольника
с длинами сторон
x и
y.
Если x или y стремится к бесконечности, то будет возвращена плюс
бесконечность.
Если x или y имеет значение NaN, а другой аргумент не бесконечность,
будет возвращено NaN.
Если в результате превышена разрядность, то возникает ошибка диапазона и
функции возвращают HUGE_VAL, HUGE_VALF или HUGE_VALL,
соответственно.
Если оба аргумента субнормальны и результат субнормален, то возникает ошибка
диапазона, и возвращается правильный результат.
ОШИБКИ
Смотрите
math_error(7), чтобы определить, какие ошибки могут возникать
при вызове этих функций.
Могут возникать следующие ошибки:
Ошибка диапазона: результат превысил разрядность
Значение
errno устанавливается в
ERANGE. Возникает исключение
переполнения плавающей точки (
FE_OVERFLOW).
Ошибка диапазона: результат потерял разрядность
Возникает исключение исчезновение порядка плавающей точки (
FE_UNDERFLOW).
В этом случае эти функции не изменяют
errno.
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
hypot(),
hypotf(),
hypotl()
безвредность в потоках: безвредно (MT-Safe)
СООТВЕТСТВИЕ СТАНДАРТАМ
C99, POSIX.1-2001, POSIX.1-2008.
Вариант, возвращающий значение типа double, также соответствует SVr4,
4.3BSD.