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(±∞, 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.

The most horrifying thing about Unix is that, no matter how many times you hit yourself over the head with it, you never quite manage to lose consciousness. It just goes on and on.
— Patrick Sobalvarro