NAG Library Routine Document

f06faf (dvcos)

1
Purpose

f06faf computes the cosine of the angle between two real vectors.

2
Specification

Fortran Interface
Function f06faf ( n, j, tolx, x, incx, toly, y, incy)
Real (Kind=nag_wp):: f06faf
Integer, Intent (In):: n, j, incx, incy
Real (Kind=nag_wp), Intent (In):: tolx, x(*), toly, y(*)
C Header Interface
#include <nagmk26.h>
double  f06faf_ (const Integer *n, const Integer *j, const double *tolx, const double x[], const Integer *incx, const double *toly, const double y[], const Integer *incy)

3
Description

f06faf returns, via the function name, the cosine of the angle between two n-element real vectors x and y, given by the expression
xTy x2y2 .  
If 1jn, y is taken to be the unit vector ej, in which case the array y is not referenced.
If x2tolx, the routine returns 2.0; if x2>tolx but y2toly, the routine returns -2.0; otherwise the value returned is in the range -1.0,1.0.

4
References

None.

5
Arguments

1:     n – IntegerInput
On entry: n, the number of elements in x and y.
2:     j – IntegerInput
On entry: if the vector y is supplied in y, j should be set to 0. Otherwise, j specifies the index j of the unit vector ej to be used as y.
3:     tolx – Real (Kind=nag_wp)Input
On entry: the value tolx, used to determine whether x2 is effectively zero.
If tolx is negative, the value zero is used.
4:     x* – Real (Kind=nag_wp) arrayInput
Note: the dimension of the array x must be at least max1, 1+n-1 ×incx .
On entry: the n-element vector x.
If incx>0, xi must be stored in x1+i-1×incx, for i=1,2,,n.
If incx<0, xi must be stored in x1-n-i×incx, for i=1,2,,n.
Intermediate elements of x are not referenced.
5:     incx – IntegerInput
On entry: the increment in the subscripts of x between successive elements of x.
6:     toly – Real (Kind=nag_wp)Input
On entry: the value toly, used to determine whether y2 is effectively zero.
If toly is negative, the value zero is used.
7:     y* – Real (Kind=nag_wp) arrayInput
Note: the dimension of the array y must be at least max1, 1+n-1 ×incy .
On entry: if 1jn, y is not referenced. Otherwise, y holds the vector y.
If incy>0, yi must be stored in y1+i-1×incy, for i=1,2,,n.
If incy<0, yi must be stored in y1-n-i×incy, for i=1,2,,n.
Intermediate elements of y are not referenced.
8:     incy – IntegerInput
On entry: the increment in the subscripts of y between successive elements of y.

6
Error Indicators and Warnings

None.

7
Accuracy

Not applicable.

8
Parallelism and Performance

f06faf is not threaded in any implementation.

9
Further Comments

None.

10
Example

None.