tail head cat sleep
QR code linking to this page

manページ  — HYPOT

名称

hypot, hypotf, cabs, cabsf

内容

ライブラリ

Math Library (libm, -lm)– ユークリッド距離と複素絶対値関数

書式

#include <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 に対して、NaN を含む +∞ になります。

誤差( Roundoff 等に基づく)

0.97 ulps 以下。 その結果、 完全な hypot(5.0, 12.0) = 13.0 となる。通常、hypot と cabs は整数値が求められる時には必ず整数を返します。

cabs.c の注釈にある短縮、かつ高速版の hypot と cabs については例外となり、 誤差は 1.2 ulps を超すことがあります。

想定通り、 hypot(v, NaN)hypot(NaN, v) 全有限数 v に対して NaN となります。 "reserved operand" が "NaN" に置き換われば、 VAX でも同じ結果になります。 VAX 以外のマシン ( もし無限数が無ければ ) のプログラマは hypot(&#177;∞, NaN) = +∞ に初めは驚くかもしれません。 これは意図的なものであり、無限、有限に関係なく、 すべての v について hypot(∞, v) = +∞ であるために起こります。 したがって、 hypot(∞, v) は、 v とは独立した値です。 VAX での予約オペランドフォルトとは異なり、 IEEE NaN は hypot(∞, NaN) において同様に、無関係になると 消失します。

関連項目

math(3), sqrt(3)

歴史

hypot() 関数と cabs() 関数はどちらも AT&T v7 から登場しました。

BSD 4 HYPOT (3) May 6, 1991

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.