Previous: sgtsl Up: ../linpack.html Next: spbco


SNRM2

       REAL FUNCTION SNRM2 ( N, SX, INCX)
       INTEGER          NEXT
       REAL   SX(1),  CUTLO, CUTHI, HITEST, SUM, XMAX, ZERO, ONE
 C
 C     EUCLIDEAN NORM OF THE N-VECTOR STORED IN SX() WITH STORAGE
 C     INCREMENT INCX .
 C     IF    N .LE. 0 RETURN WITH RESULT = 0.
 C     IF N .GE. 1 THEN INCX MUST BE .GE. 1
 C
 C           C.L.LAWSON, 1978 JAN 08
 C
 C     FOUR PHASE METHOD     USING TWO BUILT-IN CONSTANTS THAT ARE
 C     HOPEFULLY APPLICABLE TO ALL MACHINES.
 C         CUTLO = MAXIMUM OF  SQRT(U/EPS)  OVER ALL KNOWN MACHINES.
 C         CUTHI = MINIMUM OF  SQRT(V)      OVER ALL KNOWN MACHINES.
 C     WHERE
 C         EPS = SMALLEST NO. SUCH THAT EPS + 1. .GT. 1.
 C         U   = SMALLEST POSITIVE NO.   (UNDERFLOW LIMIT)
 C         V   = LARGEST  NO.            (OVERFLOW  LIMIT)
 C
 C     BRIEF OUTLINE OF ALGORITHM..
 C
 C     PHASE 1    SCANS ZERO COMPONENTS.
 C     MOVE TO PHASE 2 WHEN A COMPONENT IS NONZERO AND .LE. CUTLO
 C     MOVE TO PHASE 3 WHEN A COMPONENT IS .GT. CUTLO
 C     MOVE TO PHASE 4 WHEN A COMPONENT IS .GE. CUTHI/M
 C     WHERE M = N FOR X() REAL AND M = 2*N FOR COMPLEX.
 C
 C     VALUES FOR CUTLO AND CUTHI..
 C     FROM THE ENVIRONMENTAL PARAMETERS LISTED IN THE IMSL CONVERTER
 C     DOCUMENT THE LIMITING VALUES ARE AS FOLLOWS..
 C     CUTLO, S.P.   U/EPS = 2**(-102) FOR  HONEYWELL.  CLOSE SECONDS ARE
 C                   UNIVAC AND DEC AT 2**(-103)
 C                   THUS CUTLO = 2**(-51) = 4.44089E-16
 C     CUTHI, S.P.   V = 2**127 FOR UNIVAC, HONEYWELL, AND DEC.
 C                   THUS CUTHI = 2**(63.5) = 1.30438E19
 C     CUTLO, D.P.   U/EPS = 2**(-67) FOR HONEYWELL AND DEC.
 C                   THUS CUTLO = 2**(-33.5) = 8.23181D-11
 C     CUTHI, D.P.   SAME AS S.P.  CUTHI = 1.30438D19
 C     DATA CUTLO, CUTHI / 8.232D-11,  1.304D19 /
 C     DATA CUTLO, CUTHI / 4.441E-16,  1.304E19 /