Intel® oneAPI Math Kernel Library Developer Reference - Fortran
Performs a matrix-vector operation to calculate error bounds.
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)
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.
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.
INTEGER. Specifies the number of rows of the matrix A.
The value of m must be at least zero. Unchanged on exit.
INTEGER. Specifies the number of columns of the matrix A.
The value of n must be at least zero. Unchanged on exit.
INTEGER. Specifies the number of sub-diagonals within the band of A.
kl≥ 0.
INTEGER. Specifies the number of super-diagonals within the band of A.
ku≥ 0.
REAL for sla_gbamv and cla_gbamv
DOUBLE PRECISION for dla_gbamv and zla_gbamv
Specifies the scalar alpha. Unchanges on exit.
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.
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.
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.
INTEGER. Specifies the increment for the elements of x. incx must not be zero.
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.
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.
INTEGER. Specifies the increment for the elements of y.
The value of incy must not be zero. Unchanged on exit.
Updated vector y.