Developer Reference

  • 098
  • 03/30/2020
  • Public Content
Contents

?hbmv

Computes a matrix-vector product using a Hermitian band matrix.

Syntax

call chbmv
(
uplo
,
n
,
k
,
alpha
,
a
,
lda
,
x
,
incx
,
beta
,
y
,
incy
)
call zhbmv
(
uplo
,
n
,
k
,
alpha
,
a
,
lda
,
x
,
incx
,
beta
,
y
,
incy
)
call hbmv
(
a
,
x
,
y
[
,
uplo
]
[
,
alpha
]
[
,
beta
]
)
Include Files
  • mkl.fi
    ,
    blas.f90
Description
The
?hbmv
routines perform a matrix-vector operation defined as
y
:=
alpha
*
A
*
x
+
beta
*
y
,
where:
alpha
and
beta
are scalars,
x
and
y
are
n
-element vectors,
A
is an
n
-by-
n
Hermitian band matrix, with
k
super-diagonals.
Input Parameters
uplo
CHARACTER*1
.
Specifies whether the upper or lower triangular part of the Hermitian band matrix
A
is used:
If
uplo
=
'U'
or
'u'
, then the upper triangular part of the matrix
A
is used.
If
uplo
=
'L'
or
'l'
, then the low triangular part of the matrix
A
is used.
n
INTEGER
.
Specifies the order of the matrix
A
. The value of
n
must be at least zero.
k
INTEGER
.
For
uplo
=
'U'
or
'u'
Specifies the number of super-diagonals of the matrix
A
.
For
uplo
=
'L'
or
'l'
: Specifies the number of sub-diagonals of the matrix
A
.
The value of
k
must satisfy
0
k
.
alpha
COMPLEX
for
chbmv
DOUBLE COMPLEX
for
zhbmv
Specifies the scalar
alpha
.
a
COMPLEX
for
chbmv
DOUBLE COMPLEX
for
zhbmv
Array, size
(
lda
,
n
)
.
Before entry with
uplo
=
'U'
or
'u'
, the leading
(
k
+ 1)
by
n
part of the array
a
must contain the upper triangular band part of the Hermitian matrix. The matrix must be supplied column-by-column,
with the leading diagonal of the matrix in row
(
k
+ 1)
of the array, the first super-diagonal starting at position 2 in row
k
, and so on.
The top left
k
by
k
triangle of the array
a
is not referenced.
The following program segment transfers the upper triangular part of a Hermitian band matrix from conventional full matrix storage (
matrix
) to band storage (
a
):
do 20, j = 1, n m = k + 1 - j   do 10, i = max( 1, j - k ), j a( m + i, j ) = matrix( i, j ) 10 continue 20 continue
Before entry with
uplo
=
'L'
or
'l'
, the leading
(
k
+ 1)
by
n
part of the array
a
must contain the lower triangular band part of the Hermitian matrix, supplied column-by-column,
with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2
, and so on. The bottom right
k
by
k
triangle of the array
a
is not referenced.
The following program segment transfers the lower triangular part of a Hermitian band matrix from conventional full matrix storage (
matrix
) to band storage (
a
):
do 20, j = 1, n m = 1 - j do 10, i = j, min( n, j + k )    a( m + i, j ) = matrix( i, j ) 10 continue 20 continue
The imaginary parts of the diagonal elements need not be set and are assumed to be zero.
lda
INTEGER
.
Specifies the leading dimension of
a
as declared in the calling (sub)program. The value of
lda
must be at least
(
k
+ 1)
.
x
COMPLEX
for
chbmv
DOUBLE COMPLEX
for
zhbmv
Array, size at least
(1 + (
n
- 1)*abs(
incx
))
. Before entry, the incremented array
x
must contain the vector
x
.
incx
INTEGER
.
Specifies the increment for the elements of
x
.
The value of
incx
must not be zero.
beta
COMPLEX
for
chbmv
DOUBLE COMPLEX
for
zhbmv
Specifies the scalar
beta