std::hypot — cppreference.com
Материал из cppreference.com
<metanoindex/>
<tbody> </tbody>
| Определено в заголовочном файле |
||
|
|
(1) | (начиная с C++11) |
|
|
(2) | (начиная с C++11) |
|
|
(3) | (начиная с C++11) |
|
|
(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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Заметки
Типичные реализации стратегии заключается в расчете эквивалента u√1+()2
где u является std::max(x,y) и v является std::min(x,y).
Оригинал:
Typical implementation strategy is to calculate an equivalent of u√1+()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