Annotation of 43BSDReno/lib/libm/common_source/hypot.3, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1985 Regents of the University of California.
        !             2: .\" All rights reserved.  The Berkeley software License Agreement
        !             3: .\" specifies the terms and conditions for redistribution.
        !             4: .\"
        !             5: .\"    @(#)hypot.3     6.5 (Berkeley) 5/12/86
        !             6: .\"
        !             7: .TH HYPOT 3M  "May 12, 1986"
        !             8: .UC 4
        !             9: .ds up \fIulp\fR
        !            10: .ds nn \fINaN\fR
        !            11: .SH NAME
        !            12: hypot, cabs \- Euclidean distance, complex absolute value
        !            13: .SH SYNOPSIS
        !            14: .nf
        !            15: .B #include <math.h>
        !            16: .PP
        !            17: .B double hypot(x,y)
        !            18: .B double x,y;
        !            19: .PP
        !            20: .B double cabs(z)
        !            21: .B struct {double x,y;} z;
        !            22: .fi
        !            23: .SH DESCRIPTION
        !            24: Hypot(x,y) and cabs(x,y) return sqrt(x\(**x+y\(**y)
        !            25: computed in such a way that underflow will not happen, and overflow
        !            26: occurs only if the final result deserves it.
        !            27: .PP
        !            28: .if n \
        !            29: hypot(infinity,v) = hypot(v,infinity) = +infinity for all v, 
        !            30: .if t \
        !            31: hypot(\(if,v) = hypot(v,\(if) = +\(if for all v, 
        !            32: including \*(nn.
        !            33: .SH ERROR (due to Roundoff, etc.)
        !            34: Below 0.97 \*(ups.  Consequently hypot(5.0,12.0)\0=\013.0 exactly;
        !            35: in general, hypot and cabs return an integer whenever an
        !            36: integer might be expected.
        !            37: .PP
        !            38: The same cannot be said for the shorter and faster version of hypot
        !            39: and cabs that is provided in the comments in cabs.c; its error can
        !            40: exceed 1.2 \*(ups.
        !            41: .SH NOTES
        !            42: As might be expected, hypot(v,\*(nn) and hypot(\*(nn,v) are \*(nn for all
        !            43: \fIfinite\fR v; with "reserved operand" in place of "\*(nn", the
        !            44: same is true on a VAX.  But programmers on machines other than a VAX
        !            45: (it has no
        !            46: .if n \
        !            47: infinity)
        !            48: .if t \
        !            49: \(if)
        !            50: might be surprised at first to discover that
        !            51: .if n \
        !            52: hypot(\(+-infinity,\*(nn) = +infinity.
        !            53: .if t \
        !            54: hypot(\(+-\(if,\*(nn) = +\(if.
        !            55: This is intentional; it happens because
        !            56: .if n \
        !            57: hypot(infinity,v) = +infinity
        !            58: .if t \
        !            59: hypot(\(if,v) = +\(if
        !            60: for \fIall\fR v, finite or infinite.
        !            61: Hence
        !            62: .if n \
        !            63: hypot(infinity,v)
        !            64: .if t \
        !            65: hypot(\(if,v)
        !            66: is independent of v.
        !            67: Unlike the reserved operand on a VAX, the IEEE \*(nn is designed to
        !            68: disappear when it turns out to be irrelevant, as it does in
        !            69: .if n \
        !            70: hypot(infinity,\*(nn).
        !            71: .if t \
        !            72: hypot(\(if,\*(nn).
        !            73: .SH SEE ALSO
        !            74: math(3M), sqrt(3M)
        !            75: .SH AUTHOR
        !            76: W. Kahan

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.