Main index | Section 3 | 日本語 | 한국인 | Options |

Math Library (libm, -lm)

#include <math.h>

#include <complex.h>

The
`hypot()`,
`hypotf()`
and
`hypotl()`
functions
compute the
sqrt(x*x+y*y)
in such a way that underflow will not happen, and overflow
occurs only if the final result deserves it.
The
`cabs()`,
`cabsf()`
and
`cabsl()`
functions compute the complex absolute value of
z.

`hypot(∞, v)`
=
`hypot(v, ∞)`
= +∞ for all
v,
including NaN.

Below 0.97
* ulps*.
Consequently
`hypot(5.0, 12.0)`
= 13.0
exactly;
in general, hypot and cabs return an integer whenever an
integer might be expected.

As might be expected,
`hypot(v, NaN)`
and
`hypot(NaN, v)`
are NaN for all
* finite*
v.
But programmers
might be surprised at first to discover that
`hypot(±∞, NaN)`
= +∞.
This is intentional; it happens because
`hypot(∞, v)`
= +∞
for
* all*
v,
finite or infinite.
Hence
`hypot(∞, v)`
is independent of
v.
Unlike the reserved operand fault on a
* VAX*,
the
* IEEE*
NaN is designed to
disappear when it turns out to be irrelevant, as it does in
`hypot(∞, NaN)`.

The
`hypot()`,
`hypotf()`,
`hypotl()`,
`cabs()`,
`cabsf()`,
and
`cabsl()`
functions conform to
ISO/IEC 9899:1999 ("ISO C99").

Both a
`hypot()`
function and a
`cabs()`
function
appeared in
*AT&T v7 .*

HYPOT (3) | March 30, 2008 |

Main index | Section 3 | 日本語 | 한국인 | Options |

Please direct any comments about this manual page service to Ben Bullock. Privacy policy.

“ | Never write it in C if you can do it in `awk'; Never do it in `awk' if `sed' can handle it; Never use `sed' when `tr' can do the job; Never invoke `tr' when `cat' is sufficient; Avoid using `cat' whenever possible. |
” |

— Taylor's Laws of Programming |