close
Пространства имён
Варианты
Действия

std::hypot

Материал из cppreference.com

<metanoindex/>

 
 
 
Общие математические функции
Функции
Основные операции
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Экспоненциальные функции
(C++11)
(C++11)
(C++11)
(C++11)
Степенные функции
(C++11)
(C++11)
Тригонометрические и гиперболические функции
(C++11)
(C++11)
(C++11)
Ошибка и гамма функции
(C++11)
(C++11)
(C++11)
(C++11)
Операции целочисленного округления с плавающей запятой
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Функции манипуляции с плавающей запятой
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
Классификация/Сравнение
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Макро-константы
(C++11)(C++11)(C++11)(C++11)(C++11)
 
<tbody> </tbody>
Определено в заголовочном файле <cmath>
float hypot( float x, float y );
(1) (начиная с C++11)
double hypot( double x, double y );
(2) (начиная с C++11)
long double hypot( long double x, long double y );
(3) (начиная с C++11)
Promoted hypot( Arithmetic x, Arithmetic y );
(4) (начиная с C++11)
Вычисляет квадратный корень из суммы квадратов x и y, без излишнего переполнения на промежуточных этапах вычислений. Это длину гипотенузы прямоугольного треугольника со сторонами длиной x и y, или расстояние от точки (x,y) от начала (0,0), или величина комплекс x+iy номер
Оригинал:
Computes the square root of the sum of the squares of x and y, without undue overflow or underflow at intermediate stages of the computation. This is the length of the hypotenuse of a right-angled triangle with sides of length x and y, or the distance of the point (x,y) from the origin (0,0), or the magnitude of a complex number x+iy
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

4)

Если какой-либо из аргументов имеет целый тип, он приведен к double. Если любой другой аргумент long double, то возвращаемый тип long double, иначе это double.
Оригинал:
If any argument has integral type, it is cast to double. If any other argument is long double, then the return type is long double, otherwise it is double.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Параметры

x
плавающей точкой
Оригинал:
floating point value
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
y
плавающей точкой
Оригинал:
floating point value
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Возвращаемое значение

Гипотенузы прямоугольного треугольника, x2
+y2
.
Оригинал:
The hypotenuse of a right-angled triangle, x2
+y2
.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Исключения

Если в результате переполнения диапазона ошибка может возникнуть и FE_OVERFLOW может быть поднят.
Оригинал:
If the result overflows, a range error may occur and FE_OVERFLOW may be raised.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если результат субнормальных, нижний может произойти ошибка и FE_UNDERFLOW может быть поднят.
Оригинал:
If the result is subnormal, an underflow error may occur and FE_UNDERFLOW may be raised.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Заметки

Типичные реализации стратегии заключается в расчете эквивалента u1+(
v
u
)2
где u является std::max(x,y) и v является std::min(x,y).
Оригинал:
Typical implementation strategy is to calculate an equivalent of u1+(
v
u
)2
where u is std::max(x,y) and v is std::min(x,y).
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Пример

#include <cmath>
#include <utility>
#include <iostream>

std::pair<double, double> cartesian_to_polar(double x, double y)
{
    return {std::hypot(x, y), std::atan2(y,x)};
}

int main()
{
    std::pair<double, double> polar = cartesian_to_polar(1, 1);
    std::cout << "(1,1) cartesian is (" << polar.first
               << "," << polar.second<< ") polar\n";
}

Вывод:

(1,1) cartesian is (1.41421,0.785398) polar

См. также

(C++11)(C++11)
вычисляет квадратный корень (x)
(функция) [править]
(C++11)(C++11)
возводит число в указанную степень (xy)
(функция) [править]
возвращает величину комплексного числа
(шаблон функции) [править]