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


SYNOPSIS

       SUBROUTINE SLASSQ( N, X, INCX, SCALE, SUMSQ )

           INTEGER        INCX, N

           REAL           SCALE, SUMSQ

           REAL           X( * )


PURPOSE

       SLASSQ  returns the values scl and smsq such that ( scl**2
       )*smsq = x( 1 )**2 +...+ x( n )**2 + (  scale**2  )*sumsq,
       where   x(  i  )  =  X( 1 + ( i - 1 )*INCX ). The value of
       sumsq  is assumed to be non-negative and  scl  returns the
       value

          scl = max( scale, abs( x( i ) ) ).

       scale and sumsq must be supplied in SCALE and SUMSQ and
       scl  and  smsq  are overwritten on SCALE and SUMSQ respec­
       tively.

       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) REAL array, dimension (N)
               The  vector  for  which a scaled sum of squares is
               computed.  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) REAL
               On entry, the value  scale  in the equation above.
               On  exit,  SCALE  is  overwritten  with  scl , the
               scaling factor for the sum of squares.

       SUMSQ   (input/output) REAL
               On entry, the value  sumsq  in the equation above.
               On  exit,  SUMSQ  is  overwritten with  smsq , the
               basic sum of squares from  which   scl   has  been
               factored out.


Man(1) output converted with man2html