# p?sum1

Forms the 1-norm of a complex vector similar to Level 1 PBLAS p?asum, but using the true absolute value.

## Syntax

call pscsum1(n, asum, x, ix, jx, descx, incx)

call pdzsum1(n, asum, x, ix, jx, descx, incx)

## Description

This routine returns the sum of absolute values of a complex distributed vector sub(x) in asum, where sub(x) denotes `X(ix:ix+n-1, jx:jx)`, if `incx = 1`, `X(ix:ix, `jx:jx+n-1)``, if `incx = m_x`.

Based on p?asum from the Level 1 PBLAS. The change is to use the 'genuine' absolute value.

## Input Parameters

n

  (global) pointer to INTEGER. The number of components of the distributed vector sub(x). n ≥ 0.

x

  (local ) COMPLEX for pscsum1

  COMPLEX*16 for pdzsum1.

  Array containing the local pieces of a distributed matrix of dimension of at least `((jx-1)*m_x+ix+(n-1)*abs(incx))`. This array contains the entries of the distributed vector sub (x).

ix

  (global) INTEGER.The row index in the global array X indicating the first row of sub(x).

jx

  (global) INTEGER. The column index in the global array X indicating the first column of sub(x)

descx

  (global and local) INTEGER. Array, DIMENSION 8. The array descriptor for the distributed matrix X.

incx

  (global) INTEGER.The global increment for the elements of X. Only two values of incx are supported in this version, namely 1 and m_x.

## Output Parameters

asum

  (local)

  Pointer to REAL. The sum of absolute values of the distributed vector sub(x) only in its scope.

Parent topic: Auxiliary Routines