4.3BSD-Reno/share/man/cat3/hypot.0

Compare this file to the similar file:
Show the results in this format:




HYPOT(3M)		      1986			HYPOT(3M)



NNAAMMEE
     hypot, cabs - Euclidean distance, complex absolute value

SSYYNNOOPPSSIISS
     ##iinncclluuddee <<mmaatthh..hh>>

     ddoouubbllee hhyyppoott((xx,,yy))
     ddoouubbllee xx,,yy;;

     ddoouubbllee ccaabbss((zz))
     ssttrruucctt {{ddoouubbllee xx,,yy;;}} zz;;

DDEESSCCRRIIPPTTIIOONN
     Hypot(x,y) and cabs(x,y) return sqrt(x*x+y*y) computed in
     such a way that underflow will not happen, and overflow
     occurs only if the final result deserves it.

     hypot(infinity,v) = hypot(v,infinity) = +infinity for all v,
     including _N_a_N.

EERRRROORR ((dduuee ttoo RRoouunnddooffff,, eettcc..))
     Below 0.97 _u_l_ps.  Consequently hypot(5.0,12.0) = 13.0
     exactly; in general, hypot and cabs return an integer when-
     ever an integer might be expected.

     The same cannot be said for the shorter and faster version
     of hypot and cabs that is provided in the comments in
     cabs.c; its error can exceed 1.2 _u_l_ps.

NNOOTTEESS
     As might be expected, hypot(v,_N_a_N) and hypot(_N_a_N,v) are _N_a_N
     for all _f_i_n_i_t_e v; with "reserved operand" in place of "_N_a_N",
     the same is true on a VAX.  But programmers on machines
     other than a VAX (it has no infinity) might be surprised at
     first to discover that hypot(+_infinity,_N_a_N) = +infinity.
     This is intentional; it happens because hypot(infinity,v) =
     +infinity for _a_l_l v, finite or infinite.  Hence
     hypot(infinity,v) is independent of v.  Unlike the reserved
     operand on a VAX, the IEEE _N_a_N is designed to disappear when
     it turns out to be irrelevant, as it does in
     hypot(infinity,_N_a_N).

SSEEEE AALLSSOO
     math(3M), sqrt(3M)

AAUUTTHHOORR
     W. Kahan








Printed 7/27/90                May				1