std::hypot
Материал из cppreference.com
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
Определено в заголовочном файле <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) |
Вычисляет квадратный корень из суммы квадратов
4) 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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если какой-либо из аргументов имеет целый тип, он приведен к 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
.
+y2
.
Оригинал:
The hypotenuse of a right-angled triangle, √x2
+y2
.
+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
где
v |
u |
где
u
является std::max(x,y) и v
является std::min(x,y).Оригинал:
Typical implementation strategy is to calculate an equivalent of u√1+(
)2
where
v |
u |
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) (функция) |
возвращает величину комплексного числа (шаблон функции) |