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  (  scl**2
       )*ssq  =  x(  1 )**2 +...+ x( n )**2 + ( scale**2 )*sumsq,
       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
       respectively.   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) COMPLEX*16 array, dimension (N)
               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
               vector 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
               .

               On entry, the value  sumsq  in the equation above.
               On exit, SUMSQ is overwritten with the value   ssq
               .


Man(1) output converted with man2html