Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

Chapter Contents
Chapter Introduction
NAG Toolbox

# NAG Toolbox: nag_blast_dwaxpby (f16eh)

## Purpose

nag_blast_dwaxpby (f16eh) computes the sum of two scaled vectors, preserving input, for real scalars and vectors.

## Syntax

[w] = f16eh(n, alpha, x, incx, beta, y, incy, incw)
[w] = nag_blast_dwaxpby(n, alpha, x, incx, beta, y, incy, incw)

## Description

nag_blast_dwaxpby (f16eh) performs the operation
 w ← αx + βy, $w ← αx+βy,$
where x$x$ and y$y$ are n$n$-element real vectors, and α$\alpha$ and β$\beta$ are real scalars.

## 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

## Parameters

### Compulsory Input Parameters

1:     n – int64int32nag_int scalar
n$n$, the number of elements in x$x$, y$y$ and w$w$.
2:     alpha – double scalar
The scalar α$\alpha$.
3:     x(1 + (n1) × |incx|$1+\left({\mathbf{n}}-1\right)×|{\mathbf{incx}}|$) – double array
The n$n$-element vector x$x$.
If incx > 0${\mathbf{incx}}>0$, xi${x}_{\mathit{i}}$ must be stored in x(1 + (i1) × incx)${\mathbf{x}}\left(1+\left(\mathit{i}-1\right)×{\mathbf{incx}}\right)$, for i = 1,2,,n$\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
If incx < 0${\mathbf{incx}}<0$, xi${x}_{\mathit{i}}$ must be stored in x(1(ni) × incx)${\mathbf{x}}\left(1-\left({\mathbf{n}}-\mathit{i}\right)×{\mathbf{incx}}\right)$, for i = 1,2,,n$\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
Intermediate elements of x are not referenced.
4:     incx – int64int32nag_int scalar
The increment in the subscripts of x between successive elements of x$x$.
Constraint: incx0${\mathbf{incx}}\ne 0$.
5:     beta – double scalar
The scalar β$\beta$.
6:     y(1 + (n1) × |incy|$1+\left({\mathbf{n}}-1\right)×|{\mathbf{incy}}|$) – double array
The n$n$-element vector y$y$.
If incy > 0${\mathbf{incy}}>0$, yi${y}_{\mathit{i}}$ must be stored in y(1 + (i1) × incy)${\mathbf{y}}\left(1+\left(\mathit{i}-1\right)×{\mathbf{incy}}\right)$, for i = 1,2,,n$\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
If incy < 0${\mathbf{incy}}<0$, yi${y}_{\mathit{i}}$ must be stored in y(1(ni) × incy)${\mathbf{y}}\left(1-\left({\mathbf{n}}-\mathit{i}\right)×{\mathbf{incy}}\right)$, for i = 1,2,,n$\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
Intermediate elements of y are not referenced.
7:     incy – int64int32nag_int scalar
The increment in the subscripts of y between successive elements of y$y$.
Constraint: incy0${\mathbf{incy}}\ne 0$.
8:     incw – int64int32nag_int scalar
The increment in the subscripts of w between successive elements of w$w$.
Constraint: incw0${\mathbf{incw}}\ne 0$.

None.

None.

### Output Parameters

1:     w(1 + (n1) × |incw|$1+\left({\mathbf{n}}-1\right)×|{\mathbf{incw}}|$) – double array
The n$n$-element vector w$w$.
If incw > 0${\mathbf{incw}}>0$, wi${w}_{i}$ is in w(1 + (i1) × incw)${\mathbf{w}}\left(1+\left(\mathit{i}-1\right)×{\mathbf{incw}}\right)$, for i = 1,2,,n$\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
If incw < 0${\mathbf{incw}}<0$, wi${w}_{i}$ is in w(1 + (ni) × incw)${\mathbf{w}}\left(1+\left({\mathbf{n}}-\mathit{i}\right)×{\mathbf{incw}}\right)$, for i = 1,2,,n$\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
Intermediate elements of w are not referenced.

## 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)).

None.

## Example

```function nag_blast_dwaxpby_example
n = int64(5);
alpha = 3;
x = [-4;
2.1;
3.7;
4.5;
-6];
incx = int64(1);
beta = -1;
y = [-3;
-2.4;
6.4;
-5;
-5.1];
incy = int64(1);
incw = int64(1);
[w] = nag_blast_dwaxpby(n, alpha, x, incx, beta, y, incy, incw)
```
```

w =

-9.0000
8.7000
4.7000
18.5000
-12.9000

```
```function f16eh_example
n = int64(5);
alpha = 3;
x = [-4;
2.1;
3.7;
4.5;
-6];
incx = int64(1);
beta = -1;
y = [-3;
-2.4;
6.4;
-5;
-5.1];
incy = int64(1);
incw = int64(1);
[w] = f16eh(n, alpha, x, incx, beta, y, incy, incw)
```
```

w =

-9.0000
8.7000
4.7000
18.5000
-12.9000

```