Visible to Intel only — GUID: GUID-E3804AAF-B3F0-41C5-A23E-B080FF79CC67
Visible to Intel only — GUID: GUID-E3804AAF-B3F0-41C5-A23E-B080FF79CC67
?la_gbamv
Performs a matrix-vector operation to calculate error bounds.
Syntax
call sla_gbamv(trans, m, n, kl, ku, alpha, ab, ldab, x, incx, beta, y, incy)
call dla_gbamv(trans, m, n, kl, ku, alpha, ab, ldab, x, incx, beta, y, incy)
call cla_gbamv(trans, m, n, kl, ku, alpha, ab, ldab, x, incx, beta, y, incy)
call zla_gbamv(trans, m, n, kl, ku, alpha, ab, ldab, x, incx, beta, y, incy)
Include Files
- mkl.fi
Description
The ?la_gbamv function performs one of the matrix-vector operations defined as
y := alpha*abs(A)*abs(x) + beta*abs(y),
or
y := alpha*abs(A)T*abs(x) + beta*abs(y),
where:
alpha and beta are scalars,
x and y are vectors,
A is an m-by-n matrix, with kl sub-diagonals and ku super-diagonals.
This function is primarily used in calculating error bounds. To protect against underflow during evaluation, the function perturbs components in the resulting vector away from zero by (n + 1) times the underflow threshold. To prevent unnecessarily large errors for block structure embedded in general matrices, the function does not perturb symbolically zero components. A zero entry is considered symbolic if all multiplications involved in computing that entry have at least one zero multiplicand.
Input Parameters
- trans
-
INTEGER. Specifies the operation to be performed:
If trans = 'BLAS_NO_TRANS', then y := alpha*abs(A)*abs(x) + beta*abs(y)
If trans = 'BLAS_TRANS', then y := alpha*abs(AT)*abs(x) + beta*abs(y)
If trans = 'BLAS_CONJ_TRANS', then y := alpha*abs(AT)*abs(x) + beta*abs(y)
The parameter is unchanged on exit.
- m
-
INTEGER. Specifies the number of rows of the matrix A.
The value of m must be at least zero. Unchanged on exit.
- n
-
INTEGER. Specifies the number of columns of the matrix A.
The value of n must be at least zero. Unchanged on exit.
- kl
-
INTEGER. Specifies the number of sub-diagonals within the band of A.
kl≥ 0.
- ku
-
INTEGER. Specifies the number of super-diagonals within the band of A.
ku≥ 0.
- alpha
-
REAL for sla_gbamv and cla_gbamv
DOUBLE PRECISION for dla_gbamv and zla_gbamv
Specifies the scalar alpha. Unchanges on exit.
- ab
-
REAL for sla_gbamv
DOUBLE PRECISION for dla_gbamv
COMPLEX for cla_gbamv
DOUBLE COMPLEX for zla_gbamv
Array, DIMENSION(ldab, *).
Before entry, the leading m-by-n part of the array ab must contain the matrix of coefficients. The second dimension of ab must be at least max(1,n). Unchanged on exit.
- ldab
-
INTEGER. Specifies the leading dimension of ab as declared in the calling (sub)program. The value of ldab must be at least max(1, m). Unchanged on exit.
- x
-
REAL for sla_gbamv
DOUBLE PRECISION for dla_gbamv
COMPLEX for cla_gbamv
DOUBLE COMPLEX for zla_gbamv
Array, DIMENSION
(1 + (n - 1)*abs(incx)) when trans = 'N' or 'n'
and at least
(1 + (m - 1)*abs(incx)) otherwise.
Before entry, the incremented array x must contain the vector x.
- incx
-
INTEGER. Specifies the increment for the elements of x. incx must not be zero.
- beta
-
REAL for sla_gbamv and cla_gbamv
DOUBLE PRECISION for dla_gbamv and zla_gbamv
Specifies the scalar beta. When beta is zero, you do not need to set y on input.
- y
-
REAL for sla_gbamv and cla_gbamv
DOUBLE PRECISION for dla_gbamv and zla_gbamv
Array, DIMENSION at least
(1 +(m - 1)*abs(incy)) when trans = 'N' or 'n'
and at least
(1 +(n - 1)*abs(incy)) otherwise.
Before entry with beta non-zero, the incremented array y must contain the vector y.
- incy
-
INTEGER. Specifies the increment for the elements of y.
The value of incy must not be zero. Unchanged on exit.
Output Parameters
- y
-
Updated vector y.