std::hypot

来自cppreference.com
< cpp‎ | numeric‎ | math

 
 
 
常用数学函数
函数
基础操作
(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)
hypot
(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)
 
定义于头文件 <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 起)
计算xy的平方的总和的平方根,没有不当的上溢或下溢,在中间阶段的计算。这是一个边长的直角三角形的斜边的长度xy,或距离的点(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
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
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.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

x -
浮点值
原文:
floating point value
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
y -
浮点值
原文:
floating point value
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

一个直角三角形的斜边,x2
+y2
.
原文:
The hypotenuse of a right-angled triangle, x2
+y2
.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 例外

如果结果溢出,范围可能发生错误,FE_OVERFLOW可能会引发.
原文:
If the result overflows, a range error may occur and FE_OVERFLOW may be raised.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
如果结果是次正规,下溢错误,可能会发生与FE_UNDERFLOW可能提出.
原文:
If the result is subnormal, an underflow error may occur and FE_UNDERFLOW may be raised.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 注释

典型的执行战略是计算相当于u1+(
v
u
)2
地方ustd::max(x,y)vstd::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).
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

#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

[编辑] 另请参阅

计算平方根( x
(函数) [编辑]
求数的给定次幂( xy
(函数) [编辑]
返回复数的绝对值
(函数模板) [编辑]