Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
A newer version of this document is available. Customers should click here to go to the newest version.
?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.