nag_ddot (f16eac) (PDF version)
f16 Chapter Contents
f16 Chapter Introduction
NAG Library Manual
NAG Library Function Document
nag_ddot (f16eac)
+
−
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_ddot (f16eac) updates a scalar by a scaled dot product of two real vectors, by performing
r
←
β
r
+
α
x
T
y
.
2 Specification
#include <nag.h>
#include <nagf16.h>
void
nag_ddot (Nag_ConjType
conj
, Integer
n
, double
alpha
, const double
x
[], Integer
incx
, double
beta
, const double
y
[], Integer
incy
, double *
r
, NagError *
fail
)
3 Description
nag_ddot (f16eac) performs the operation
r
←
β
r
+
α
x
T
y
where
x
and
y
are
n
-element real vectors, and
r
,
α
and
β
real scalars. If
n
is less than zero, or, if
β
is equal to one and either
α
or
n
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:
conj
–
Nag_ConjType
Input
On entry
:
conj
is not used. The presence of this argument in the BLAST standard is for consistency with the interface of the complex variant of this function.
Constraint
:
conj
=
Nag_NoConj
or
Nag_Conj
.
2:
n
–
Integer
Input
On entry
:
n
, the number of elements in
x
and
y
.
3:
alpha
–
double
Input
On entry
: the scalar
α
.
4:
x
[
1
+
n
-
1
×
incx
]
–
const double
Input
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
α
=
0.0
or
n
=
0
,
x
is not referenced and may be
NULL
.
5:
incx
–
Integer
Input
On entry
: the increment in the subscripts of
x
between successive elements of
x
.
Constraint
:
incx
≠
0
.
6:
beta
–
double
Input
On entry
: the scalar
β
.
7:
y
[
1
+
n
-
1
×
incy
]
–
const double
Input
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
.
8:
incy
–
Integer
Input
On entry
: the increment in the subscripts of
y
between successive elements of
y
.
Constraint
:
incy
≠
0
.
9:
r
–
double *
Input/Output
On entry
: the initial value,
r
, to be updated. If
β
=
0.0
,
r
need not be set on entry.
On exit
: the value
r
, scaled by
β
and updated by the scaled dot product of
x
and
y
.
10:
fail
–
NagError *
Input/Output
The NAG error argument (see
Section 3.6
in the Essential Introduction).
6 Error Indicators and Warnings
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
.
7 Accuracy
The dot product
x
T
y
is computed using the BLAS routine DDOT.
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
Not applicable.
9 Further Comments
None.
10 Example
This example computes the scaled sum of two dot products,
r
=
α
1
x
T
y
+
α
2
u
T
v
, where
α
1
=
0.3
,
x
=
1
,
2
,
3
,
4
,
5
,
y
=
-
5
,
-
4
,
3
,
2
,
1
,
α
2
=
-
7.0
,
u
=
v
=
0.4
,
0.3
,
0.2
,
0.1
.
y
and
v
are stored in reverse order, and
u
is stored in reverse order in every other element of a real array.
10.1 Program Text
Program Text (f16eace.c)
10.2 Program Data
Program Data (f16eace.d)
10.3 Program Results
Program Results (f16eace.r)
nag_ddot (f16eac) (PDF version)
f16 Chapter Contents
f16 Chapter Introduction
NAG Library Manual
© The Numerical Algorithms Group Ltd, Oxford, UK. 2014