NAG Library Manual, Mark 29.1
Interfaces:
FL
CL
CPP
AD
PY
MB
NAG CL Interface Introduction
F16 (Blast) Chapter Contents
F16 (Blast) Chapter Introduction
f16pd:
FL
CL
CPP
AD
PY
MB
NAG CL Interface
f16pdc (dsbmv)
Keyword Search:
NAG Library Manual, Mark 29.1
Interfaces:
FL
CL
CPP
AD
PY
MB
NAG CL Interface Introduction
F16 (Blast) Chapter Contents
F16 (Blast) Chapter Introduction
f16pd:
FL
CL
CPP
AD
PY
MB
▸
▿
Contents
1
Purpose
2
Specification
3
Description
4
References
5
Arguments
6
Error Indicators and Warnings
7
Accuracy
8
Parallelism and Performance
9
Further Comments
▸
▿
10
Example
10.1
Program Text
10.2
Program Data
10.3
Program Results
© The Numerical Algorithms Group Ltd. 2023
Settings help
CL Name Style:
Short (
a00aac
)
Long (
impl_details
)
Full (
nag_info_impl_details
)
1
Purpose
f16pdc
performs matrix-vector multiplication for a real symmetric band matrix.
2
Specification
copy
#include <nag.h>
void
f16pdc
(
Nag_OrderType
order
,
Nag_UploType
uplo
,
Integer
n
,
Integer
k
,
double
alpha
,
const double
ab
[],
Integer
pdab
,
const double
x
[],
Integer
incx
,
double
beta
,
double
y
[],
Integer
incy
,
NagError *
fail
)
The function may be called by the names:
f16pdc
,
nag_blast_dsbmv
or
nag_dsbmv
.
3
Description
f16pdc
performs the matrix-vector operation
y
←
α
A
x
+
β
y
,
where
A
is an
n
×
n
real symmetric band matrix with
k
subdiagonals and
k
superdiagonals,
x
and
y
are
n
-element real vectors, and
α
and
β
are real scalars.
4
References
Basic Linear Algebra Subprograms Technical (BLAST) Forum (2001)
Basic Linear Algebra Subprograms Technical (BLAST) Forum Standard
University of Tennessee, Knoxville, Tennessee
https://www.netlib.org/blas/blast-forum/blas-report.pdf
5
Arguments
1:
order
–
Nag_OrderType
Input
On entry
: the
order
argument specifies the two-dimensional storage scheme being used, i.e., row-major ordering or column-major ordering. C language defined storage is specified by
order
=
Nag_RowMajor
. See
Section 3.1.3
in the Introduction to the NAG Library CL Interface for a more detailed explanation of the use of this argument.
Constraint
:
order
=
Nag_RowMajor
or
Nag_ColMajor
.
2:
uplo
–
Nag_UploType
Input
On entry
: specifies whether the upper or lower triangular part of
A
is stored.
uplo
=
Nag_Upper
The upper triangular part of
A
is stored.
uplo
=
Nag_Lower
The lower triangular part of
A
is stored.
Constraint
:
uplo
=
Nag_Upper
or
Nag_Lower
.
3:
n
–
Integer
Input
On entry
:
n
, the order of the matrix
A
.
Constraint
:
n
≥
0
.
4:
k
–
Integer
Input
On entry
:
k
, the number of subdiagonals or superdiagonals of the matrix
A
.
Constraint
:
k
≥
0
.
5:
alpha
–
double
Input
On entry
: the scalar
α
.
6:
ab
[
dim
]
–
const double
Input
Note:
the dimension,
dim
, of the array
ab
must be at least
max
(
1
,
pdab
×
n
)
.
On entry
: the
n
×
n
symmetric band matrix
A
.
This is stored as a notional two-dimensional array with row elements or column elements stored contiguously. The storage of elements of
A
i
j
, depends on the
order
and
uplo
arguments as follows:
if
order
=
Nag_ColMajor
and
uplo
=
Nag_Upper
,
A
i
j
is stored in
ab
[
k
+
i
-
j
+
(
j
-
1
)
×
pdab
]
, for
j
=
1
,
…
,
n
and
i
=
max
(
1
,
j
-
k
)
,
…
,
j
;
if
order
=
Nag_ColMajor
and
uplo
=
Nag_Lower
,
A
i
j
is stored in
ab
[
i
-
j
+
(
j
-
1
)
×
pdab
]
, for
j
=
1
,
…
,
n
and
i
=
j
,
…
,
min
(
n
,
j
+
k
)
;
if
order
=
Nag_RowMajor
and
uplo
=
Nag_Upper
,
A
i
j
is stored in
ab
[
j
-
i
+
(
i
-
1
)
×
pdab
]
, for
i
=
1
,
…
,
n
and
j
=
i
,
…
,
min
(
n
,
i
+
k
)
;
if
order
=
Nag_RowMajor
and
uplo
=
Nag_Lower
,
A
i
j
is stored in
ab
[
k
+
j
-
i
+
(
i
-
1
)
×
pdab
]
, for
i
=
1
,
…
,
n
and
j
=
max
(
1
,
i
-
k
)
,
…
,
i
.
7:
pdab
–
Integer
Input
On entry
: the stride separating row or column elements (depending on the value of
order
) of the matrix
A
in the array
ab
.
Constraint
:
pdab
≥
k
+
1
.
8:
x
[
dim
]
–
const double
Input
Note:
the dimension,
dim
, of the array
x
must be at least
max
(
1
,
1
+
(
n
-
1
)
|
incx
|
)
.
On entry
: the
n
-element vector
x
.
If
incx
>
0
,
x
i
must be stored in
x
[
(
i
-
1
)
×
incx
]
, for
i
=
1
,
2
,
…
,
n
.
If
incx
<
0
,
x
i
must be stored in
x
[
(
n
-
i
)
×
|
incx
|
]
, for
i
=
1
,
2
,
…
,
n
.
Intermediate elements of
x
are not referenced. If
n
=
0
,
x
is not referenced and may be
NULL
.
9:
incx
–
Integer
Input
On entry
: the increment in the subscripts of
x
between successive elements of
x
.
Constraint
:
incx
≠
0
.
10:
beta
–
double
Input
On entry
: the scalar
β
.
11:
y
[
dim
]
–
double
Input/Output
Note:
the dimension,
dim
, of the array
y
must be at least
max
(
1
,
1
+
(
n
-
1
)
|
incy
|
)
.
On entry
: the vector
y
. See
x
for details of storage.
If
beta
=
0
,
y
need not be set.
On exit
: the updated vector
y
.
12:
incy
–
Integer
Input
On entry
: the increment in the subscripts of
y
between successive elements of
y
.
Constraint
:
incy
≠
0
.
13:
fail
–
NagError *
Input/Output
The NAG error argument (see
Section 7
in the Introduction to the NAG Library CL Interface).
6
Error Indicators and Warnings
NE_ALLOC_FAIL
Dynamic memory allocation failed.
See
Section 3.1.2
in the Introduction to the NAG Library CL Interface for further information.
NE_BAD_PARAM
On entry, argument
⟨
value
⟩
had an illegal value.
NE_INT
On entry,
incx
=
⟨
value
⟩
.
Constraint:
incx
≠
0
.
On entry,
incy
=
⟨
value
⟩
.
Constraint:
incy
≠
0
.
On entry,
k
=
⟨
value
⟩
.
Constraint:
k
≥
0
.
On entry,
n
=
⟨
value
⟩
.
Constraint:
n
≥
0
.
NE_INT_2
On entry,
pdab
=
⟨
value
⟩
,
k
=
⟨
value
⟩
.
Constraint:
pdab
≥
k
+
1
.
NE_NO_LICENCE
Your licence key may have expired or may not have been installed correctly.
See
Section 8
in the Introduction to the NAG Library CL Interface for further information.
7
Accuracy
The BLAS standard requires accurate implementations which avoid unnecessary over/underflow (see Section 2.7 of
Basic Linear Algebra Subprograms Technical (BLAST) Forum (2001)
).
8
Parallelism and Performance
Background information to multithreading can be found in the
Multithreading
documentation.
f16pdc
is not threaded in any implementation.
9
Further Comments
None.
10
Example
This example computes the matrix-vector product
y
=
α
A
x
+
β
y
where
A
=
(
1.0
2.0
3.0
0.0
0.0
2.0
2.0
3.0
4.0
0.0
3.0
3.0
3.0
4.0
5.0
0.0
4.0
4.0
4.0
5.0
0.0
0.0
5.0
5.0
5.0
)
,
x
=
(
-
1.0
2.0
-
3.0
2.0
-
1.0
)
,
y
=
(
10.0
1.5
9.5
8.5
24.0
)
,
α
=
1.5
and
β
=
1.0
.
10.1
Program Text
Program Text (f16pdce.c)
10.2
Program Data
Program Data (f16pdce.d)
10.3
Program Results
Program Results (f16pdce.r)
NAG Library Manual, Mark 29.1
Interfaces:
FL
CL
CPP
AD
PY
MB
NAG CL Interface Introduction
F16 (Blast) Chapter Contents
F16 (Blast) Chapter Introduction
f16pd:
FL
CL
CPP
AD
PY
MB
© The Numerical Algorithms Group Ltd. 2023