This manual relates to an old release of the Library.
The documentation for the current release is also available on this site.

NAG FL Interface
f06pbf (dgbmv)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

f06pbf computes the matrix-vector product for a real general band matrix or its transpose.

2 Specification

Fortran Interface
Subroutine f06pbf ( trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy)
Integer, Intent (In) :: m, n, kl, ku, lda, incx, incy
Real (Kind=nag_wp), Intent (In) :: alpha, a(lda,*), x(*), beta
Real (Kind=nag_wp), Intent (Inout) :: y(*)
Character (1), Intent (In) :: trans
C Header Interface
#include <nag.h>
void  f06pbf_ (const char *trans, const Integer *m, const Integer *n, const Integer *kl, const Integer *ku, const double *alpha, const double a[], const Integer *lda, const double x[], const Integer *incx, const double *beta, double y[], const Integer *incy, const Charlen length_trans)
The routine may be called by the names f06pbf, nagf_blas_dgbmv or its BLAS name dgbmv.

3 Description

f06pbf performs one of the matrix-vector operations
yαAx+βy   or   yαATx+βy ,  
where A is an m×n real band matrix with kl subdiagonals and ku superdiagonals, x and y are real vectors, and α and β are real scalars.
If m=0 or n=0, no operation is performed.

4 References

None.

5 Arguments

1: trans Character(1) Input
On entry: specifies the operation to be performed.
trans='N'
yαAx+βy.
trans='T' or 'C'
yαATx+βy.
Constraint: trans='N', 'T' or 'C'.
2: m Integer Input
On entry: m, the number of rows of the matrix A.
Constraint: m0.
3: n Integer Input
On entry: n, the number of columns of the matrix A.
Constraint: n0.
4: kl Integer Input
On entry: kl, the number of subdiagonals within the band of A.
Constraint: kl0.
5: ku Integer Input
On entry: ku, the number of superdiagonals within the band of A.
Constraint: ku0.
6: alpha Real (Kind=nag_wp) Input
On entry: the scalar α.
7: a(lda,*) Real (Kind=nag_wp) array Input
Note: the second dimension of the array a must be at least n.
On entry: the m×n band matrix A.
The matrix is stored in rows 1 to kl+ku+1, more precisely, the element Aij must be stored in
a(ku+1+i-j,j)  for ​max(1,j-ku)imin(m,j+kl).  
8: lda Integer Input
On entry: the first dimension of the array a as declared in the (sub)program from which f06pbf is called.
Constraint: ldakl+ku+1.
9: x(*) Real (Kind=nag_wp) array Input
Note: the dimension of the array x must be at least max(1, 1+ (n-1) ×|incx| ) if trans='N' and at least max(1, 1+ (m-1) ×|incx| ) if trans='T' or 'C'.
On entry: the vector x.
If trans='N',
  • if incx>0, xi must be stored in x(1+(i-1)×incx) , for i=1,2,,n;
  • if incx<0, xi must be stored in x(1-(n-i)×incx) , for i=1,2,,n.
If trans='T' or 'C',
  • if incx>0, xi must be stored in x(1+(i-1)×incx) , for i=1,2,,m;
  • if incx<0, xi must be stored in x(1-(m-i)×incx) , for i=1,2,,m.
10: incx Integer Input
On entry: the increment in the subscripts of x between successive elements of x.
Constraint: incx0.
11: beta Real (Kind=nag_wp) Input
On entry: the scalar β.
12: y(*) Real (Kind=nag_wp) array Input/Output
Note: the dimension of the array y must be at least max(1,1+(m-1) ×|incy|) if trans='N' and at least max(1,1+(n-1) ×|incy|) if trans='T' or 'C'.
On entry: the vector y, if beta=0.0, y need not be set.
If trans='N',
  • if incy>0, yi must be stored in y(1+(i-1)×incy) , for i=1,2,,m;
  • if incy<0, yi must be stored in y(1-(m-i)×incy) , for i=1,2,,m.
If trans='T' or 'C',
  • if incy>0, yi must be stored in y(1+(i-1)×incy) , for i=1,2,,n;
  • if incy<0, yi must be stored in y(1-(n-i)×incy) , for i=1,2,,n.
On exit: the updated vector y stored in the array elements used to supply the original vector y.
13: incy Integer Input
On entry: the increment in the subscripts of y between successive elements of y.
Constraint: incy0.

6 Error Indicators and Warnings

None.

7 Accuracy

Not applicable.

8 Parallelism and Performance

f06pbf is not threaded in any implementation.

9 Further Comments

None.

10 Example

None.