Name

hypot, hypotf, hypotl
- Euclidean distance function

Library

libm.lib

Synopsis

  #include <math.h>
  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

© 2005-2007 Nokia

Top