{S,D}NRSQ (n, x, incx) SCNRSQ (n, x, incx) DZNRSQ (n, x, incx)
sum real*4 | real*8 The sum of the squares of the elements of the real vector x. The sum of the squares of the absolute value of the elements of the complex vector x. If n<=0, sum returns the value 0.0.
n integer*4 On entry, the number of elements of the vector x. On exit, n is unchanged. x real*4 | real*8 | complex*8 | complex*16 On entry, a one-dimensional array X of length at least (1+(n-1)*|incx|), containing the elements of the vector x. On exit, x is unchanged. incx integer*4 On entry, the increment for the array X. If incx > 0, vector x is stored forward in the array, so that x(i) is stored in location X(1+(i-1)*incx). If incx < 0, vector x is stored backward in the array, so that x(i) is stored in location X(1+(n-i)*|incx|). If incx = 0, only the first element is accessed. On exit, incx is unchanged.
SNRSQ and DNRSQ compute the sum of squares of the elements of a real vector. SCNRSQ and DZNRSQ compute the sum of squares of the absolute value of the elements of a complex vector. SNRSQ and DNRSQ compute the total value of the square roots of each element in the real vector x: SUM(j=1...n,x(j)**2) SCNRSQ and DZNRSQ compute the total value of the square roots of each element in the complex vector x, using the absolute value of each element: SUM(j=1...n,|x(j)|**2) For complex vectors, each element x(j) is a complex number. In this subprogram, the absolute value of a complex number is defined as the square root of the sum of the square of the real part and the square of the imaginary part: |x(j)| = (a(j)**2 + b(j)**2)**(1/2) = ((real)**2 + (imaginary)**2) **(1/2) If incx < 0, the result is identical to using |incx|. If incx = 0, the computation is a time-consuming way of setting sum = nx(1)**2. Because of efficient coding, rounding errors can cause the final result to differ from the result computed by a sequential evaluation of the sum of the squares of the elements of the vector. Use these functions to obtain the square of the Euclidean norm instead of squaring the result obtained from the Level 1 routines SNRM2 and DNRM2. The computation is more accurate.
INTEGER*4 N, INCX REAL*4 X(20), SUM INCX = 1 N = 20 SUM = SNRSQ(N,X,INCX) This FORTRAN example shows how to compute the sum of the squares of the elements of the vector x.