1vrhypot_(3MVEC)          Vector Math Library Functions         vrhypot_(3MVEC)
2
3
4

## NAME

6       vrhypot_, vrhypotf_ - vector reciprocal hypotenuse functions
7

## SYNOPSIS

9       cc [ flag... ] file... -lmvec [ library... ]
10
11       void vrhypot_(int *n, double * restrict x, int *stridex,
12            double * restrict y, int *stridey, double * restrict z,
13            int *stridez);
14
15
16       void vrhypotf_(int *n, float * restrict x, int *stridex,
17            float * restrict y, int *stridey, float * restrict z,
18            int *stridez);
19
20

## DESCRIPTION

22       These  functions  evaluate  the  function rhypot(x, y), defined by rhy‐
23       pot(x, y) = 1 / hypot(x, y), for an entire vector of  values  at  once.
24       The  first  parameter specifies the number of values to compute. Subse‐
25       quent parameters specify the argument and result vectors.  Each  vector
26       is  described  by a pointer to the first element and a stride, which is
27       the increment between successive elements.
28
29
30       Specifically, vrhypot_(n, x, sx, y, sy, z, sz) computes z[i  *  *sz]  =
31       rhypot(x[i  *  *sx],  y[i  *  *sy]) for each i = 0, 1, ..., *n - 1. The
32       vrhypotf_()  function performs the same computation for  single  preci‐
33       sion data.
34
35
36       These  functions are not guaranteed to deliver results that are identi‐
37       cal to the results of evaluating 1.0 / hypot(x, y) given the same argu‐
38       ments.  Non-exceptional results, however, are accurate to within a unit
39       in the last place.
40

## USAGE

42       The element count *n must be greater than zero.  The  strides  for  the
43       argument  and  result  arrays can be arbitrary integers, but the arrays
44       themselves must not be the same or overlap. A zero  stride  effectively
45       collapses  an  entire  vector  into a single element. A negative stride
46       causes a vector to be accessed in descending  memory  order,  but  note
47       that the corresponding pointer must still point to the first element of
48       the vector to be used; if the stride is  negative,  this  will  be  the
49       highest-addressed  element  in memory. This convention differs from the
50       Level 1 BLAS, in which array parameters always  refer  to  the  lowest-
51       addressed element in memory even when negative increments are used.
52
53
54       These  functions  assume  that  the  default  round-to-nearest rounding
55       direction mode is in effect. On x86, these functions also  assume  that
56       the  default  round-to-64-bit rounding precision mode is in effect. The
57       result of calling a vector function with a non-default rounding mode in
58       effect is undefined.
59
60
61       These  functions  handle  special cases and exceptions in the spirit of
62       IEEE 754. In particular,
63
64           o      if x or y is ±Inf, rhypot(x, y) is +0, even if the other  of
65                  x or y is NaN,
66
67           o      if  x  or  y is NaN and neither is infinite, rhypot(x, y) is
68                  NaN
69
70           o      if x and y are both zero, rhypot(x, y) is +0,  and  a  divi‐
71                  sion-by-zero exception is raised.
72
73
74       An  application  wanting to check for exceptions should call feclearex‐
75       cept(FE_ALL_EXCEPT) before  calling  these  functions.  On  return,  if
76       fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is
77       non-zero, an exception has been raised. The application can then  exam‐
78       ine  the result or argument vectors for exceptional values. Some vector
79       functions can raise the inexact exception even if all elements  of  the
80       argument array are such that the numerical results are exact.
81

## ATTRIBUTES

83       See attributes(5) for descriptions of the following attributes:
84
85
86
87
88       ┌─────────────────────────────┬─────────────────────────────┐
89       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
90       ├─────────────────────────────┼─────────────────────────────┤
91       │Interface Stability          │Committed                    │
92       ├─────────────────────────────┼─────────────────────────────┤
93       │MT-Level                     │MT-Safe                      │
94       └─────────────────────────────┴─────────────────────────────┘
95