nag_dger (f16pmc) (PDF version)
f16 Chapter Contents
f16 Chapter Introduction
NAG Library Manual
Keyword Search:
NAG Library Function Document
nag_dger (f16pmc)
▸
▿
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
1
Purpose
nag_dger (f16pmc)
performs a rank-1 update on a real general matrix.
2
Specification
#include <nag.h>
#include <nagf16.h>
void
nag_dger (
Nag_OrderType
order
,
Nag_ConjType
conj
,
Integer
m
,
Integer
n
,
double
alpha
,
const double
x
[],
Integer
incx
,
const double
y
[],
Integer
incy
,
double
beta
,
double
a
[],
Integer
pda
,
NagError *
fail
)
3
Description
nag_dger (f16pmc)
performs the rank-1 update operation
A
←
α
x
y
T
+
β
A
,
where
A
is an
m
by
n
real matrix,
x
is an
m
element real vector,
y
is an
n
-element real vector, and
α
and
β
are real scalars. If
m
or
n
is equal to zero or if
β
is equal to one and
α
is equal to zero, this function returns immediately.
4
References
Basic Linear Algebra Subprograms Technical (BLAST) Forum (2001)
Basic Linear Algebra Subprograms Technical (BLAST) Forum Standard
University of Tennessee, Knoxville, Tennessee
http://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.3.1.3
in How to Use the NAG Library and its Documentation for a more detailed explanation of the use of this argument.
Constraint
:
order
=
Nag_RowMajor
or
Nag_ColMajor
.
2:
conj
–
Nag_ConjType
Input
On entry
: the argument
conj
is not referenced if
x
and
y
are real vectors. It is suggested that you set
conj
=
Nag_NoConj
where the elements
y
i
are not conjugated.
Constraint
:
conj
=
Nag_NoConj
.
3:
m
–
Integer
Input
On entry
:
m
, the number of rows of the matrix
A
.
Constraint
:
m
≥
0
.
4:
n
–
Integer
Input
On entry
:
n
, the number of columns of the matrix
A
.
Constraint
:
n
≥
0
.
5:
alpha
–
double
Input
On entry
: the scalar
α
.
6:
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
,
…
,
m
.
If
incx
<
0
,
x
i
must be stored in
x
[
m
-
i
×
incx
]
, for
i
=
1
,
2
,
…
,
m
.
Intermediate elements of
x
are not referenced. If
m
=
0
,
x
is not referenced and may be
NULL
.
7:
incx
–
Integer
Input
On entry
: the increment in the subscripts of
x
between successive elements of
x
.
Constraint
:
incx
≠
0
.
8:
y
[
dim
]
–
const double
Input
Note:
the dimension,
dim
, of the array
y
must be at least
max
1
,
1
+
n
-
1
incy
.
On entry
: the
n
-element vector
y
.
If
incy
>
0
,
y
i
must be stored in
y
[
i
-
1
×
incy
]
, for
i
=
1
,
2
,
…
,
n
.
If
incy
<
0
,
y
i
must be stored in
y
[
n
-
i
×
incy
]
, for
i
=
1
,
2
,
…
,
n
.
Intermediate elements of
y
are not referenced. If
α
=
0.0
or
n
=
0
,
y
is not referenced and may be
NULL
.
9:
incy
–
Integer
Input
On entry
: the increment in the subscripts of
y
between successive elements of
y
.
Constraint
:
incy
≠
0
.
10:
beta
–
double
Input
On entry
: the scalar
β
.
11:
a
[
dim
]
–
double
Input/Output
Note:
the dimension,
dim
, of the array
a
must be at least
max
1
,
pda
×
n
when
order
=
Nag_ColMajor
;
max
1
,
m
×
pda
when
order
=
Nag_RowMajor
.
If
order
=
Nag_ColMajor
,
A
i
j
is stored in
a
[
j
-
1
×
pda
+
i
-
1
]
.
If
order
=
Nag_RowMajor
,
A
i
j
is stored in
a
[
i
-
1
×
pda
+
j
-
1
]
.
On entry
: the
m
by
n
matrix
A
.
On exit
: the updated matrix
A
.
12:
pda
–
Integer
Input
On entry
: the stride separating row or column elements (depending on the value of
order
) in the array
a
.
Constraints
:
if
order
=
Nag_ColMajor
,
pda
≥
max
1
,
m
;
if
order
=
Nag_RowMajor
,
pda
≥
n
.
13:
fail
–
NagError *
Input/Output
The NAG error argument (see
Section 3.7
in How to Use the NAG Library and its Documentation).
6
Error Indicators and Warnings
NE_ALLOC_FAIL
Dynamic memory allocation failed.
See
Section 2.3.1.2
in How to Use the NAG Library and its Documentation 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,
m
=
value
.
Constraint:
m
≥
0
.
On entry,
n
=
value
.
Constraint:
n
≥
0
.
NE_INT_2
On entry,
pda
=
value
,
m
=
value
.
Constraint:
pda
≥
max
1
,
m
.
On entry,
pda
=
value
and
n
=
value
.
Constraint:
pda
≥
n
.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact
NAG
for assistance.
NE_NO_LICENCE
Your licence key may have expired or may not have been installed correctly.
See
Section 2.7.5
in How to Use the NAG Library and its Documentation 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
nag_dger (f16pmc)
is not threaded in any implementation.
9
Further Comments
The argument
conj
is not referenced in this case where
x
and
y
are real vectors.
10
Example
Perform rank-1 update of real matrix
A
using vectors
x
and
y
:
A
←
A
-
x
y
T
,
where
A
is the
3
by
2
matrix given by
A
=
3.0
2.0
3.0
4.0
5.0
9.0
,
x
=
2.0
,
3.0
,
5.0
T
and
y
=
0.0
,
1.0
,
0.0
T
.
10.1
Program Text
Program Text (f16pmce.c)
10.2
Program Data
Program Data (f16pmce.d)
10.3
Program Results
Program Results (f16pmce.r)
nag_dger (f16pmc) (PDF version)
f16 Chapter Contents
f16 Chapter Introduction
NAG Library Manual
© The Numerical Algorithms Group Ltd, Oxford, UK. 2017