Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

math(3M)

sqrt(3M)

HYPOT(3M)  —  

NAME

hypot, cabs − Euclidean distance, complex absolute value

SYNOPSIS

#include <math.h>

double hypot(x, y)
double x, y;

double cabs(z)
struct { double x, y;} z;

DESCRIPTION

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(∞,v) = hypot(v,∞) = + ∞ for all v including NaN. 

NOTES

As might be expected, hypot(v,NaN) and hypot(NaN,v) are NaN for all finite v.  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.  NaN is designed to disappear when it turns out to be irrelevant, as it does in hypot(∞,NaN). 

ERRORS (due to roundoff, etc.)

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. 

SEE ALSO

math(3M), sqrt(3M)
 

PRPQs 5799-WZQ/5799-PFF: IBM/4.3  —  15 Dec 1986

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026