clibmvec(3M)
NAME
clibmvec − vector versions of some complex mathematical functions
SYNOPSIS
f77 [ flag ... ] file ... −lmvec [ library ... ]
or
f77 [ flag ... ] file ... −lmvec_mt [ library ... ]
subroutine vz_abs(n, x, stridex, y, stridey)
subroutine vz_exp(n, x, stridex, y, stridey, tmp)
subroutine vz_log(n, x, stridex, y, stridey)
subroutine vz_pow(n, x, stridex, y, stridey, z, stridez, tmp)
subroutine vc_abs(n, a, stridea, b, strideb)
subroutine vc_exp(n, a, stridea, b, strideb, stmp)
subroutine vc_log(n, a, stridea, b, strideb)
subroutine vc_pow(n, a, stridea, b, strideb, c, stridec, stmp)
integer n,stridex,stridey,stridez,stridea,strideb,stridec
complex∗16 x(n),y(n),z(n),tmp(n)
complex a(n),b(n),c(n),stmp(n)
DESCRIPTION
Each function of the form vz_func evaluates the corresponding complex function func(x) for each element of the complex vector x. The number of elements computed is n, and the results are stored in the complex y vector. For functions of two arguments, the results are stored in the complex z vector. Stridex, stridey, and stridez are the distances between successive elements of the x, y, and z vectors respectively, and allow the vector functions to operate on elements which are not contiguous in memory. The arrays x, y, z, and tmp are Fortran type complex arrays.
vz_abs(n, x , stridex, y, stridey, z, stridez) computes cabs(y,x).
vz_exp(n, x , stridex, y, stridey, tmp) computes cexp(x).
vz_log(n, x , stridex, y, stridey) computes clog(x).
v_pow(n, x , stridex, y, stridey, z, stridez, tmp) computes z = x∗∗y , the complex power function.
The subroutines vc_abs, vc_exp, vc_log, and vc_pow, are single precision complex versions of the double precision complex functions listed above.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| Availability | SPROlang |
| MT-Level | MT-Safe |
SEE ALSO
DIAGNOSTICS
The vector functions treat exceptional cases in the spirit of IEEE754, producing the same results as the Fortran scalar functions. Some vector functions may raise the inexact exception even if all elements of x are such that all elements of y are exact.
NOTES
The vector functions listed above are provided in each of two libraries, libmvec.a and libmvec_mt.a. The latter contains parallelized versions of the functions that work in conjunction with the automatic parallelization provided by the compiler. To use libmvec_mt.a, you must link with one of the parallelization options -xparallel, -xexplicitpar, or -xautopar.
In vector and parallel execution, elements need not be evaluated in the order x[0], x[1∗stridex], x[2∗stridex], etc. Therefore, exceptions that occur may not be raised in order. For example, if argument x[1] would raise the overflow exception, and x[9] would raise the invalid exception, there is no guarantee that the overflow will be raised first.
The strides for the argument arrays may be positive or negative integers, but must not be zero. The argument arrays must not be the same, or overlap. For example, vz_exp(n,x,1,x,1) leads to unpredictable results. Finally, the element count n must be greater than zero.
SunOS 5.0 — Last change: 06/27/98