# ?asum

Computes the sum of magnitudes of the vector elements.

## Syntax

FORTRAN 77:

res = sasum(n, x, incx)

res = scasum(n, x, incx)

res = dasum(n, x, incx)

res = dzasum(n, x, incx)

Fortran 95:

res = asum(x)

C:

float cblas_sasum (const MKL_INT n, const float *x, const MKL_INT incx);

float cblas_scasum (const MKL_INT n, const void *x, const MKL_INT incx);

double cblas_dasum (const MKL_INT n, const double *x, const MKL_INT incx);

double cblas_dzasum (const MKL_INT n, const void *x, const MKL_INT incx);

## Include Files

• Fortran: mkl.fi
• Fortran 95: blas.f90
• C: mkl.h

## Description

The ?asum routine computes the sum of the magnitudes of elements of a real vector, or the sum of magnitudes of the real and imaginary parts of elements of a complex vector:

```res = |Re x1| + |Im x1| + |Re  x2| + |Im  x2|+ ... + |Re  xn| + |Im xn|,
```

where x is a vector with n elements.

## Input Parameters

n

INTEGER. Specifies the number of elements in vector x.

x

REAL for sasum

DOUBLE PRECISION for dasum

COMPLEX for scasum

DOUBLE COMPLEX for dzasum

Array, size at least `(1 + (n-1)*abs(incx))`.

incx

INTEGER. Specifies the increment for indexing vector x.

## Output Parameters

res

REAL for sasum

DOUBLE PRECISION for dasum

REAL for scasum

DOUBLE PRECISION for dzasum

Contains the sum of magnitudes of real and imaginary parts of all elements of the vector.

## Fortran 95 Interface Notes

Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or reconstructible arguments, see Fortran 95 Interface Conventions.

Specific details for the routine asum interface are the following:

x

Holds the array of size n.

For more complete information about compiler optimizations, see our Optimization Notice.