Previous: zlasr Up: ../lapack-z.html Next: zlaswp


zlassq


 NAME
      ZLASSQ - return the values scl and ssq such that   ( scl**2
      )*ssq = x( 1 )**2 +...+ x( n )**2 + ( scale**2 )*sumsq,

 SYNOPSIS
      SUBROUTINE ZLASSQ( N, X, INCX, SCALE, SUMSQ )

          INTEGER        INCX, N

          DOUBLE         PRECISION SCALE, SUMSQ

          COMPLEX*16     X( * )

 PURPOSE
      ZLASSQ returns the values scl and ssq such that

      where x( i ) = abs( X( 1 + ( i - 1 )*INCX ) ). The value of
      sumsq is assumed to be at least unity and the value of ssq
      will then satisfy

         1.0 .le. ssq .le. ( sumsq + 2*n ).

      scale is assumed to be non-negative and scl returns the
      value

         scl = max( scale, abs( real( x( i ) ) ), abs( aimag( x( i
      ) ) ) ),
                i

      scale and sumsq must be supplied in SCALE and SUMSQ respec-
      tively.  SCALE and SUMSQ are overwritten by scl and ssq
      respectively.

      The routine makes only one pass through the vector X.

 ARGUMENTS
      N       (input) INTEGER
              The number of elements to be used from the vector X.

      X       (input) DOUBLE PRECISION
              The vector x as described above.  x( i )  = X( 1 + (
              i - 1 )*INCX ), 1 <= i <= n.

      INCX    (input) INTEGER
              The increment between successive values of the vec-
              tor X.  INCX > 0.

      SCALE   (input/output) DOUBLE PRECISION
              On entry, the value  scale  in the equation above.
              On exit, SCALE is overwritten with the value  scl .

      SUMSQ   (input/output) DOUBLE PRECISION
              On entry, the value  sumsq  in the equation above.
              On exit, SUMSQ is overwritten with the value  ssq .