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_ffuunncc evaluates the correspond-
ing complex function ffuunncc((xx)) 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 sin-
gle precision complex versions of the double precision com-
plex functions listed above.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
__________________________________
| ATTRIBUTE TYPE| ATTRIBUTE VALUE|
|_______________|__________________|_
| Availability | SPROlang |
| MT-Level | MT-Safe |
|_______________|_________________|
SEE ALSO
libmvec(3M), attributes(5)
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 ele-
ments 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 con-
tains 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 over-
flow 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 nega-
tive 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.
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |