Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?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(A^{T})*abs(x) + beta*abs(y) If trans = 'BLAS_CONJ_TRANS' , then y := alpha*abs(A^{T})*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 .