Name
hypot, hypotf, hypotl
- Euclidean distance function
Library
libm.lib
Synopsis
|
double
hypot (double x, double y);
|
|
float
hypotf (float x, float y);
|
|
long double
hypotl (long double x, long double y);
|
Detailed description
The
hypot
and
hypotf
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 function
hypotl
is an alias to the function
Examples
void main( void )
{
double x1 = 3.0 , x2 = 4.0, y;
y = hypot( x1, x2 );
printf( "atan2(%f , %f) = %f\n", x1, x2, y );
y = hypotf( x1, x2 );
printf( "atan2f(%f , %f) = %f\n", x1, x2, y );
y = hypotl( x1, x2 );
printf( "hypotl(%f , %f) = %f\n", x1, x2, y );
}
Output
hypot ( 3.0, 4.0 ) = 5.000000
hypotf( 3.0, 4.0 ) = 5.000000
hypotl( 3.0, 4.0 ) = 5.000000
Error (due to roundoff, etc.)
Below 0.97
ulps.
Consequently
hypot (5.0, 12.0);
= 13.0
exactly;
in general, the hypot and cabs functions return an integer whenever an
integer might be expected.
Notes
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 (±oo, NaN);
= +oo.
This is intentional; it happens because
hypot (oo, v);
= +oo
for
all
v,
finite or infinite.
Hence
hypot (oo, 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 (oo, NaN);
hypot.
hypot (oo, v);
=
hypot (v, oo);
= +oo for all
v,
including NaN.
See also
math,
sqrt
Feedback
For additional information or queries on this page send feedback
© 2008 Nokia Corporation. All rights reserved. This documentation can be used in the connection with this Product to help and support the user. |
|