HYPOT
Section: Linux Programmer's Manual (3)
Updated: 2008-08-05
Index
JM Home Page
roff page
名前
hypot, hypotf, hypotl - ユークリッド距離関数
書式
#include <math.h>
double hypot(double x, double y);
float hypotf(float x, float y);
long double hypotl(long double x, long double y);
-lm でリンクする。
glibc 向けの機能検査マクロの要件
(feature_test_macros(7)
参照):
hypot():
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE; or
cc -std=c99
hypotf(),
hypotl():
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE; or
cc -std=c99
説明
hypot()
関数は
sqrt(x*x+y*y)
の値を返す。
これは
直角を挟む 2 辺の長さが
x
と
y
である直角三角形の斜辺の長さ、
すなわち、原点と点
(x,y)
との距離である。
計算の中間ステップでは、必要以上のオーバーフローやアンダーフローが
起きないようにして計算が実行される。
返り値
成功すると、これらの関数は、
直角を挟む 2 辺の長さが
x
と
y
である直角三角形の斜辺の長さを返す。
x
か
y
が無限大の場合、正の無限大が返される。
x
か
y
の一方が NaN で、もう一方が無限大でない場合、
NaN が返される。
結果がオーバーフローする場合、範囲エラー (range error) が発生し、
各関数はそれぞれ
HUGE_VAL,
HUGE_VALF,
HUGE_VALL
を返す。
両方の引き数が非正規化数 (subnormal) で、結果も非正規化数 (subnormal) の場合、
範囲エラーが発生し、正しい結果が返される。
エラー
これらの関数を呼び出した際にエラーが発生したかの判定方法についての情報は
math_error(7)
を参照のこと。
以下のエラーが発生する可能性がある。
- 範囲エラー: 結果のオーバーフロー
-
errno
に
ERANGE
が設定される。
オーバーフロー浮動小数点例外
(FE_OVERFLOW)
が上がる。
- 範囲エラー: 結果のアンダーフロー
-
アンダーフロー浮動小数点例外
(FE_UNDERFLOW)
が上がる。
-
この場合、これらの関数は
errno
を設定しない。
準拠
C99, POSIX.1-2001.
double
版の関数は SVr4, 4.3BSD にも準拠している。
関連項目
cabs(3),
sqrt(3)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 03:26:45 GMT, April 25, 2010