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


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

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


The p?sum1 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


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


(local ) COMPLEX for pscsum1

COMPLEX*16 for pdzsum1.

Pointer into the local memory to an array of size (lld_x, LOCc(jx+n-1)). This array contains the local pieces of the distributed vector sub(X).


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


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


(local) INTEGER. Array of size dlen_=9. The array descriptor for the distributed matrix X.


(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



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

See Also

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