NAG Library Routine Document

f06pbf (dgbmv)

1
Purpose

f06pbf (dgbmv) 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 <nagmk26.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 its BLAS name dgbmv.

3
Description

f06pbf (dgbmv) performs one of the matrix-vector operations
yαAx+βy   or   yαATx+βy ,  
where A is an m by 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 – IntegerInput
On entry: m, the number of rows of the matrix A.
Constraint: m0.
3:     n – IntegerInput
On entry: n, the number of columns of the matrix A.
Constraint: n0.
4:     kl – IntegerInput
On entry: kl, the number of subdiagonals within the band of A.
Constraint: kl0.
5:     ku – IntegerInput
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:     alda* – Real (Kind=nag_wp) arrayInput
Note: the second dimension of the array a must be at least n.
On entry: the m by n band matrix A.
The matrix is stored in rows 1 to kl+ku+1, more precisely, the element Aij must be stored in
aku+1+i-jj  for ​max1,j-kuiminm,j+kl. 
8:     lda – IntegerInput
On entry: the first dimension of the array a as declared in the (sub)program from which f06pbf (dgbmv) is called.
Constraint: ldakl+ku+1.
9:     x* – Real (Kind=nag_wp) arrayInput
Note: the dimension of the array x must be at least max1, 1+ n-1 ×incx  if trans='N' and at least max1, 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 x1+i-1×incx , for i=1,2,,n;
  • if incx<0, xi must be stored in x1-n-i×incx , for i=1,2,,n.
If trans='T' or 'C',
  • if incx>0, xi must be stored in x1+i-1×incx , for i=1,2,,m;
  • if incx<0, xi must be stored in x1-m-i×incx , for i=1,2,,m.
10:   incx – IntegerInput
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) arrayInput/Output
Note: the dimension of the array y must be at least max1,1+m-1 ×incy  if trans='N' and at least max1,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 y1+i-1×incy , for i=1,2,,m;
  • if incy<0, yi must be stored in y1-m-i×incy , for i=1,2,,m.
If trans='T' or 'C',
  • if incy>0, yi must be stored in y1+i-1×incy , for i=1,2,,n;
  • if incy<0, yi must be stored in y1-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 – IntegerInput
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 (dgbmv) is not threaded in any implementation.

9
Further Comments

None.

10
Example

None.