```1`vrhypot_(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
```

```97`       hypot(3M), feclearexcept(3M), fetestexcept(3M), attributes(5)`
101`SunOS 5.11                        14 Dec 2007                  vrhypot_(3MVEC)`