HYPOT(3)

명칭
hypot, hypotf, cabs, cabsf

프로그램 라이브러리
libm - Euclid 거리와 복소절대치 함수

서식
<math.h> double hypot(double x, double y) float hypotf(float x, float y) struct {double x, y;} z; double cabs(z) struct {float x, y;} z; float cabsf(z)

해설
hypot(), hypotf(), cabs(), 및 cabsf() 함수는, 안다후로가 일어나지 않고, 최종 결과로 오버플로우가 일어나는 경우만 오버플로우 하는 방법으로 sqrt(x*x+y*y) (을)를 계산합니다.

hypot(, v) 혹은 hypot(v, ) (은)는, 모든 v 에 대해서, 를 포함한다 + 가 됩니다.

오차 ( Roundoff 등에 근거한다 )
0.97 ulps 이하. 그 결과, 완전한 hypot(5.0, 12.0) = 13.0 된다. 통상, hypot 와 cabs 는 정수치가 요구될 때에는 반드시 정수를 돌려줍니다.

cabs.c 의 주석에 있는 단축, 한편 고속판의 hypot 와 cabs 에 대해서는 예외가 되어, 오차는 1.2 ulps (을)를 넘는 일이 있습니다.

주
상정 대로, hypot(v, ) (와)과 hypot(, v) 하 전유한수 v 에 대해서 됩니다. "reserved operand" 가 "" 에 옮겨지면, VAX 그렇지만 같은 결과가 됩니다. VAX 이외의 머신 (만약 무한수가 없으면 )의 프로그래머는 hypot(±, ) = + 에 처음은 놀랄지도 모릅니다. 이것은 의도적인 물건이며, 무한, 유한하게 관계없이, 모든 v 에 붙어 hypot(, v) = + 이기 위해서(때문에) 일어납니다. 따라서, hypot(, v) (은)는, v (와)과는 독립한 값입니다. VAX 에서의 예약 오퍼랜드 fault와는 달라, IEEE 는 hypot(, ) 에 두어 같이 무관계하게 되면(자) 소실합니다.

관련 항목
math(3), sqrt(3)

역사
hypot() 함수와 cabs() 함수는 어느쪽이나 AT&T UNIX (으)로부터 등장했습니다.