495 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Fortran
		
	
	
	
			
		
		
	
	
			495 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Fortran
		
	
	
	
*> \brief \b CCHKEQ
 | 
						|
*
 | 
						|
*  =========== DOCUMENTATION ===========
 | 
						|
*
 | 
						|
* Online html documentation available at 
 | 
						|
*            http://www.netlib.org/lapack/explore-html/ 
 | 
						|
*
 | 
						|
*  Definition:
 | 
						|
*  ===========
 | 
						|
*
 | 
						|
*       SUBROUTINE CCHKEQ( THRESH, NOUT )
 | 
						|
* 
 | 
						|
*       .. Scalar Arguments ..
 | 
						|
*       INTEGER            NOUT
 | 
						|
*       REAL               THRESH
 | 
						|
*       ..
 | 
						|
*  
 | 
						|
*
 | 
						|
*> \par Purpose:
 | 
						|
*  =============
 | 
						|
*>
 | 
						|
*> \verbatim
 | 
						|
*>
 | 
						|
*> CCHKEQ tests CGEEQU, CGBEQU, CPOEQU, CPPEQU and CPBEQU
 | 
						|
*> \endverbatim
 | 
						|
*
 | 
						|
*  Arguments:
 | 
						|
*  ==========
 | 
						|
*
 | 
						|
*> \param[in] THRESH
 | 
						|
*> \verbatim
 | 
						|
*>          THRESH is REAL
 | 
						|
*>          Threshold for testing routines. Should be between 2 and 10.
 | 
						|
*> \endverbatim
 | 
						|
*>
 | 
						|
*> \param[in] NOUT
 | 
						|
*> \verbatim
 | 
						|
*>          NOUT is INTEGER
 | 
						|
*>          The unit number for output.
 | 
						|
*> \endverbatim
 | 
						|
*
 | 
						|
*  Authors:
 | 
						|
*  ========
 | 
						|
*
 | 
						|
*> \author Univ. of Tennessee 
 | 
						|
*> \author Univ. of California Berkeley 
 | 
						|
*> \author Univ. of Colorado Denver 
 | 
						|
*> \author NAG Ltd. 
 | 
						|
*
 | 
						|
*> \date November 2011
 | 
						|
*
 | 
						|
*> \ingroup complex_lin
 | 
						|
*
 | 
						|
*  =====================================================================
 | 
						|
      SUBROUTINE CCHKEQ( THRESH, NOUT )
 | 
						|
*
 | 
						|
*  -- LAPACK test routine (version 3.4.0) --
 | 
						|
*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 | 
						|
*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 | 
						|
*     November 2011
 | 
						|
*
 | 
						|
*     .. Scalar Arguments ..
 | 
						|
      INTEGER            NOUT
 | 
						|
      REAL               THRESH
 | 
						|
*     ..
 | 
						|
*
 | 
						|
*  =====================================================================
 | 
						|
*
 | 
						|
*     .. Parameters ..
 | 
						|
      REAL               ZERO, ONE, TEN
 | 
						|
      PARAMETER          ( ZERO = 0.0E0, ONE = 1.0E+0, TEN = 1.0E1 )
 | 
						|
      COMPLEX            CZERO
 | 
						|
      PARAMETER          ( CZERO = ( 0.0E0, 0.0E0 ) )
 | 
						|
      COMPLEX            CONE
 | 
						|
      PARAMETER          ( CONE = ( 1.0E0, 0.0E0 ) )
 | 
						|
      INTEGER            NSZ, NSZB
 | 
						|
      PARAMETER          ( NSZ = 5, NSZB = 3*NSZ-2 )
 | 
						|
      INTEGER            NSZP, NPOW
 | 
						|
      PARAMETER          ( NSZP = ( NSZ*( NSZ+1 ) ) / 2,
 | 
						|
     $                   NPOW = 2*NSZ+1 )
 | 
						|
*     ..
 | 
						|
*     .. Local Scalars ..
 | 
						|
      LOGICAL            OK
 | 
						|
      CHARACTER*3        PATH
 | 
						|
      INTEGER            I, INFO, J, KL, KU, M, N
 | 
						|
      REAL               CCOND, EPS, NORM, RATIO, RCMAX, RCMIN, RCOND
 | 
						|
*     ..
 | 
						|
*     .. Local Arrays ..
 | 
						|
      REAL               C( NSZ ), POW( NPOW ), R( NSZ ), RESLTS( 5 ),
 | 
						|
     $                   RPOW( NPOW )
 | 
						|
      COMPLEX            A( NSZ, NSZ ), AB( NSZB, NSZ ), AP( NSZP )
 | 
						|
*     ..
 | 
						|
*     .. External Functions ..
 | 
						|
      REAL               SLAMCH
 | 
						|
      EXTERNAL           SLAMCH
 | 
						|
*     ..
 | 
						|
*     .. External Subroutines ..
 | 
						|
      EXTERNAL           CGBEQU, CGEEQU, CPBEQU, CPOEQU, CPPEQU
 | 
						|
*     ..
 | 
						|
*     .. Intrinsic Functions ..
 | 
						|
      INTRINSIC          ABS, MAX, MIN
 | 
						|
*     ..
 | 
						|
*     .. Executable Statements ..
 | 
						|
*
 | 
						|
      PATH( 1:1 ) = 'Complex precision'
 | 
						|
      PATH( 2:3 ) = 'EQ'
 | 
						|
*
 | 
						|
      EPS = SLAMCH( 'P' )
 | 
						|
      DO 10 I = 1, 5
 | 
						|
         RESLTS( I ) = ZERO
 | 
						|
   10 CONTINUE
 | 
						|
      DO 20 I = 1, NPOW
 | 
						|
         POW( I ) = TEN**( I-1 )
 | 
						|
         RPOW( I ) = ONE / POW( I )
 | 
						|
   20 CONTINUE
 | 
						|
*
 | 
						|
*     Test CGEEQU
 | 
						|
*
 | 
						|
      DO 80 N = 0, NSZ
 | 
						|
         DO 70 M = 0, NSZ
 | 
						|
*
 | 
						|
            DO 40 J = 1, NSZ
 | 
						|
               DO 30 I = 1, NSZ
 | 
						|
                  IF( I.LE.M .AND. J.LE.N ) THEN
 | 
						|
                     A( I, J ) = POW( I+J+1 )*( -1 )**( I+J )
 | 
						|
                  ELSE
 | 
						|
                     A( I, J ) = CZERO
 | 
						|
                  END IF
 | 
						|
   30          CONTINUE
 | 
						|
   40       CONTINUE
 | 
						|
*
 | 
						|
            CALL CGEEQU( M, N, A, NSZ, R, C, RCOND, CCOND, NORM, INFO )
 | 
						|
*
 | 
						|
            IF( INFO.NE.0 ) THEN
 | 
						|
               RESLTS( 1 ) = ONE
 | 
						|
            ELSE
 | 
						|
               IF( N.NE.0 .AND. M.NE.0 ) THEN
 | 
						|
                  RESLTS( 1 ) = MAX( RESLTS( 1 ),
 | 
						|
     $                          ABS( ( RCOND-RPOW( M ) ) / RPOW( M ) ) )
 | 
						|
                  RESLTS( 1 ) = MAX( RESLTS( 1 ),
 | 
						|
     $                          ABS( ( CCOND-RPOW( N ) ) / RPOW( N ) ) )
 | 
						|
                  RESLTS( 1 ) = MAX( RESLTS( 1 ),
 | 
						|
     $                          ABS( ( NORM-POW( N+M+1 ) ) / POW( N+M+
 | 
						|
     $                          1 ) ) )
 | 
						|
                  DO 50 I = 1, M
 | 
						|
                     RESLTS( 1 ) = MAX( RESLTS( 1 ),
 | 
						|
     $                             ABS( ( R( I )-RPOW( I+N+1 ) ) /
 | 
						|
     $                             RPOW( I+N+1 ) ) )
 | 
						|
   50             CONTINUE
 | 
						|
                  DO 60 J = 1, N
 | 
						|
                     RESLTS( 1 ) = MAX( RESLTS( 1 ),
 | 
						|
     $                             ABS( ( C( J )-POW( N-J+1 ) ) /
 | 
						|
     $                             POW( N-J+1 ) ) )
 | 
						|
   60             CONTINUE
 | 
						|
               END IF
 | 
						|
            END IF
 | 
						|
*
 | 
						|
   70    CONTINUE
 | 
						|
   80 CONTINUE
 | 
						|
*
 | 
						|
*     Test with zero rows and columns
 | 
						|
*
 | 
						|
      DO 90 J = 1, NSZ
 | 
						|
         A( MAX( NSZ-1, 1 ), J ) = CZERO
 | 
						|
   90 CONTINUE
 | 
						|
      CALL CGEEQU( NSZ, NSZ, A, NSZ, R, C, RCOND, CCOND, NORM, INFO )
 | 
						|
      IF( INFO.NE.MAX( NSZ-1, 1 ) )
 | 
						|
     $   RESLTS( 1 ) = ONE
 | 
						|
*
 | 
						|
      DO 100 J = 1, NSZ
 | 
						|
         A( MAX( NSZ-1, 1 ), J ) = CONE
 | 
						|
  100 CONTINUE
 | 
						|
      DO 110 I = 1, NSZ
 | 
						|
         A( I, MAX( NSZ-1, 1 ) ) = CZERO
 | 
						|
  110 CONTINUE
 | 
						|
      CALL CGEEQU( NSZ, NSZ, A, NSZ, R, C, RCOND, CCOND, NORM, INFO )
 | 
						|
      IF( INFO.NE.NSZ+MAX( NSZ-1, 1 ) )
 | 
						|
     $   RESLTS( 1 ) = ONE
 | 
						|
      RESLTS( 1 ) = RESLTS( 1 ) / EPS
 | 
						|
*
 | 
						|
*     Test CGBEQU
 | 
						|
*
 | 
						|
      DO 250 N = 0, NSZ
 | 
						|
         DO 240 M = 0, NSZ
 | 
						|
            DO 230 KL = 0, MAX( M-1, 0 )
 | 
						|
               DO 220 KU = 0, MAX( N-1, 0 )
 | 
						|
*
 | 
						|
                  DO 130 J = 1, NSZ
 | 
						|
                     DO 120 I = 1, NSZB
 | 
						|
                        AB( I, J ) = CZERO
 | 
						|
  120                CONTINUE
 | 
						|
  130             CONTINUE
 | 
						|
                  DO 150 J = 1, N
 | 
						|
                     DO 140 I = 1, M
 | 
						|
                        IF( I.LE.MIN( M, J+KL ) .AND. I.GE.
 | 
						|
     $                      MAX( 1, J-KU ) .AND. J.LE.N ) THEN
 | 
						|
                           AB( KU+1+I-J, J ) = POW( I+J+1 )*
 | 
						|
     $                                         ( -1 )**( I+J )
 | 
						|
                        END IF
 | 
						|
  140                CONTINUE
 | 
						|
  150             CONTINUE
 | 
						|
*
 | 
						|
                  CALL CGBEQU( M, N, KL, KU, AB, NSZB, R, C, RCOND,
 | 
						|
     $                         CCOND, NORM, INFO )
 | 
						|
*
 | 
						|
                  IF( INFO.NE.0 ) THEN
 | 
						|
                     IF( .NOT.( ( N+KL.LT.M .AND. INFO.EQ.N+KL+1 ) .OR.
 | 
						|
     $                   ( M+KU.LT.N .AND. INFO.EQ.2*M+KU+1 ) ) ) THEN
 | 
						|
                        RESLTS( 2 ) = ONE
 | 
						|
                     END IF
 | 
						|
                  ELSE
 | 
						|
                     IF( N.NE.0 .AND. M.NE.0 ) THEN
 | 
						|
*
 | 
						|
                        RCMIN = R( 1 )
 | 
						|
                        RCMAX = R( 1 )
 | 
						|
                        DO 160 I = 1, M
 | 
						|
                           RCMIN = MIN( RCMIN, R( I ) )
 | 
						|
                           RCMAX = MAX( RCMAX, R( I ) )
 | 
						|
  160                   CONTINUE
 | 
						|
                        RATIO = RCMIN / RCMAX
 | 
						|
                        RESLTS( 2 ) = MAX( RESLTS( 2 ),
 | 
						|
     $                                ABS( ( RCOND-RATIO ) / RATIO ) )
 | 
						|
*
 | 
						|
                        RCMIN = C( 1 )
 | 
						|
                        RCMAX = C( 1 )
 | 
						|
                        DO 170 J = 1, N
 | 
						|
                           RCMIN = MIN( RCMIN, C( J ) )
 | 
						|
                           RCMAX = MAX( RCMAX, C( J ) )
 | 
						|
  170                   CONTINUE
 | 
						|
                        RATIO = RCMIN / RCMAX
 | 
						|
                        RESLTS( 2 ) = MAX( RESLTS( 2 ),
 | 
						|
     $                                ABS( ( CCOND-RATIO ) / RATIO ) )
 | 
						|
*
 | 
						|
                        RESLTS( 2 ) = MAX( RESLTS( 2 ),
 | 
						|
     $                                ABS( ( NORM-POW( N+M+1 ) ) /
 | 
						|
     $                                POW( N+M+1 ) ) )
 | 
						|
                        DO 190 I = 1, M
 | 
						|
                           RCMAX = ZERO
 | 
						|
                           DO 180 J = 1, N
 | 
						|
                              IF( I.LE.J+KL .AND. I.GE.J-KU ) THEN
 | 
						|
                                 RATIO = ABS( R( I )*POW( I+J+1 )*
 | 
						|
     $                                   C( J ) )
 | 
						|
                                 RCMAX = MAX( RCMAX, RATIO )
 | 
						|
                              END IF
 | 
						|
  180                      CONTINUE
 | 
						|
                           RESLTS( 2 ) = MAX( RESLTS( 2 ),
 | 
						|
     $                                   ABS( ONE-RCMAX ) )
 | 
						|
  190                   CONTINUE
 | 
						|
*
 | 
						|
                        DO 210 J = 1, N
 | 
						|
                           RCMAX = ZERO
 | 
						|
                           DO 200 I = 1, M
 | 
						|
                              IF( I.LE.J+KL .AND. I.GE.J-KU ) THEN
 | 
						|
                                 RATIO = ABS( R( I )*POW( I+J+1 )*
 | 
						|
     $                                   C( J ) )
 | 
						|
                                 RCMAX = MAX( RCMAX, RATIO )
 | 
						|
                              END IF
 | 
						|
  200                      CONTINUE
 | 
						|
                           RESLTS( 2 ) = MAX( RESLTS( 2 ),
 | 
						|
     $                                   ABS( ONE-RCMAX ) )
 | 
						|
  210                   CONTINUE
 | 
						|
                     END IF
 | 
						|
                  END IF
 | 
						|
*
 | 
						|
  220          CONTINUE
 | 
						|
  230       CONTINUE
 | 
						|
  240    CONTINUE
 | 
						|
  250 CONTINUE
 | 
						|
      RESLTS( 2 ) = RESLTS( 2 ) / EPS
 | 
						|
*
 | 
						|
*     Test CPOEQU
 | 
						|
*
 | 
						|
      DO 290 N = 0, NSZ
 | 
						|
*
 | 
						|
         DO 270 I = 1, NSZ
 | 
						|
            DO 260 J = 1, NSZ
 | 
						|
               IF( I.LE.N .AND. J.EQ.I ) THEN
 | 
						|
                  A( I, J ) = POW( I+J+1 )*( -1 )**( I+J )
 | 
						|
               ELSE
 | 
						|
                  A( I, J ) = CZERO
 | 
						|
               END IF
 | 
						|
  260       CONTINUE
 | 
						|
  270    CONTINUE
 | 
						|
*
 | 
						|
         CALL CPOEQU( N, A, NSZ, R, RCOND, NORM, INFO )
 | 
						|
*
 | 
						|
         IF( INFO.NE.0 ) THEN
 | 
						|
            RESLTS( 3 ) = ONE
 | 
						|
         ELSE
 | 
						|
            IF( N.NE.0 ) THEN
 | 
						|
               RESLTS( 3 ) = MAX( RESLTS( 3 ),
 | 
						|
     $                       ABS( ( RCOND-RPOW( N ) ) / RPOW( N ) ) )
 | 
						|
               RESLTS( 3 ) = MAX( RESLTS( 3 ),
 | 
						|
     $                       ABS( ( NORM-POW( 2*N+1 ) ) / POW( 2*N+
 | 
						|
     $                       1 ) ) )
 | 
						|
               DO 280 I = 1, N
 | 
						|
                  RESLTS( 3 ) = MAX( RESLTS( 3 ),
 | 
						|
     $                          ABS( ( R( I )-RPOW( I+1 ) ) / RPOW( I+
 | 
						|
     $                          1 ) ) )
 | 
						|
  280          CONTINUE
 | 
						|
            END IF
 | 
						|
         END IF
 | 
						|
  290 CONTINUE
 | 
						|
      A( MAX( NSZ-1, 1 ), MAX( NSZ-1, 1 ) ) = -CONE
 | 
						|
      CALL CPOEQU( NSZ, A, NSZ, R, RCOND, NORM, INFO )
 | 
						|
      IF( INFO.NE.MAX( NSZ-1, 1 ) )
 | 
						|
     $   RESLTS( 3 ) = ONE
 | 
						|
      RESLTS( 3 ) = RESLTS( 3 ) / EPS
 | 
						|
*
 | 
						|
*     Test CPPEQU
 | 
						|
*
 | 
						|
      DO 360 N = 0, NSZ
 | 
						|
*
 | 
						|
*        Upper triangular packed storage
 | 
						|
*
 | 
						|
         DO 300 I = 1, ( N*( N+1 ) ) / 2
 | 
						|
            AP( I ) = CZERO
 | 
						|
  300    CONTINUE
 | 
						|
         DO 310 I = 1, N
 | 
						|
            AP( ( I*( I+1 ) ) / 2 ) = POW( 2*I+1 )
 | 
						|
  310    CONTINUE
 | 
						|
*
 | 
						|
         CALL CPPEQU( 'U', N, AP, R, RCOND, NORM, INFO )
 | 
						|
*
 | 
						|
         IF( INFO.NE.0 ) THEN
 | 
						|
            RESLTS( 4 ) = ONE
 | 
						|
         ELSE
 | 
						|
            IF( N.NE.0 ) THEN
 | 
						|
               RESLTS( 4 ) = MAX( RESLTS( 4 ),
 | 
						|
     $                       ABS( ( RCOND-RPOW( N ) ) / RPOW( N ) ) )
 | 
						|
               RESLTS( 4 ) = MAX( RESLTS( 4 ),
 | 
						|
     $                       ABS( ( NORM-POW( 2*N+1 ) ) / POW( 2*N+
 | 
						|
     $                       1 ) ) )
 | 
						|
               DO 320 I = 1, N
 | 
						|
                  RESLTS( 4 ) = MAX( RESLTS( 4 ),
 | 
						|
     $                          ABS( ( R( I )-RPOW( I+1 ) ) / RPOW( I+
 | 
						|
     $                          1 ) ) )
 | 
						|
  320          CONTINUE
 | 
						|
            END IF
 | 
						|
         END IF
 | 
						|
*
 | 
						|
*        Lower triangular packed storage
 | 
						|
*
 | 
						|
         DO 330 I = 1, ( N*( N+1 ) ) / 2
 | 
						|
            AP( I ) = CZERO
 | 
						|
  330    CONTINUE
 | 
						|
         J = 1
 | 
						|
         DO 340 I = 1, N
 | 
						|
            AP( J ) = POW( 2*I+1 )
 | 
						|
            J = J + ( N-I+1 )
 | 
						|
  340    CONTINUE
 | 
						|
*
 | 
						|
         CALL CPPEQU( 'L', N, AP, R, RCOND, NORM, INFO )
 | 
						|
*
 | 
						|
         IF( INFO.NE.0 ) THEN
 | 
						|
            RESLTS( 4 ) = ONE
 | 
						|
         ELSE
 | 
						|
            IF( N.NE.0 ) THEN
 | 
						|
               RESLTS( 4 ) = MAX( RESLTS( 4 ),
 | 
						|
     $                       ABS( ( RCOND-RPOW( N ) ) / RPOW( N ) ) )
 | 
						|
               RESLTS( 4 ) = MAX( RESLTS( 4 ),
 | 
						|
     $                       ABS( ( NORM-POW( 2*N+1 ) ) / POW( 2*N+
 | 
						|
     $                       1 ) ) )
 | 
						|
               DO 350 I = 1, N
 | 
						|
                  RESLTS( 4 ) = MAX( RESLTS( 4 ),
 | 
						|
     $                          ABS( ( R( I )-RPOW( I+1 ) ) / RPOW( I+
 | 
						|
     $                          1 ) ) )
 | 
						|
  350          CONTINUE
 | 
						|
            END IF
 | 
						|
         END IF
 | 
						|
*
 | 
						|
  360 CONTINUE
 | 
						|
      I = ( NSZ*( NSZ+1 ) ) / 2 - 2
 | 
						|
      AP( I ) = -CONE
 | 
						|
      CALL CPPEQU( 'L', NSZ, AP, R, RCOND, NORM, INFO )
 | 
						|
      IF( INFO.NE.MAX( NSZ-1, 1 ) )
 | 
						|
     $   RESLTS( 4 ) = ONE
 | 
						|
      RESLTS( 4 ) = RESLTS( 4 ) / EPS
 | 
						|
*
 | 
						|
*     Test CPBEQU
 | 
						|
*
 | 
						|
      DO 460 N = 0, NSZ
 | 
						|
         DO 450 KL = 0, MAX( N-1, 0 )
 | 
						|
*
 | 
						|
*           Test upper triangular storage
 | 
						|
*
 | 
						|
            DO 380 J = 1, NSZ
 | 
						|
               DO 370 I = 1, NSZB
 | 
						|
                  AB( I, J ) = CZERO
 | 
						|
  370          CONTINUE
 | 
						|
  380       CONTINUE
 | 
						|
            DO 390 J = 1, N
 | 
						|
               AB( KL+1, J ) = POW( 2*J+1 )
 | 
						|
  390       CONTINUE
 | 
						|
*
 | 
						|
            CALL CPBEQU( 'U', N, KL, AB, NSZB, R, RCOND, NORM, INFO )
 | 
						|
*
 | 
						|
            IF( INFO.NE.0 ) THEN
 | 
						|
               RESLTS( 5 ) = ONE
 | 
						|
            ELSE
 | 
						|
               IF( N.NE.0 ) THEN
 | 
						|
                  RESLTS( 5 ) = MAX( RESLTS( 5 ),
 | 
						|
     $                          ABS( ( RCOND-RPOW( N ) ) / RPOW( N ) ) )
 | 
						|
                  RESLTS( 5 ) = MAX( RESLTS( 5 ),
 | 
						|
     $                          ABS( ( NORM-POW( 2*N+1 ) ) / POW( 2*N+
 | 
						|
     $                          1 ) ) )
 | 
						|
                  DO 400 I = 1, N
 | 
						|
                     RESLTS( 5 ) = MAX( RESLTS( 5 ),
 | 
						|
     $                             ABS( ( R( I )-RPOW( I+1 ) ) /
 | 
						|
     $                             RPOW( I+1 ) ) )
 | 
						|
  400             CONTINUE
 | 
						|
               END IF
 | 
						|
            END IF
 | 
						|
            IF( N.NE.0 ) THEN
 | 
						|
               AB( KL+1, MAX( N-1, 1 ) ) = -CONE
 | 
						|
               CALL CPBEQU( 'U', N, KL, AB, NSZB, R, RCOND, NORM, INFO )
 | 
						|
               IF( INFO.NE.MAX( N-1, 1 ) )
 | 
						|
     $            RESLTS( 5 ) = ONE
 | 
						|
            END IF
 | 
						|
*
 | 
						|
*           Test lower triangular storage
 | 
						|
*
 | 
						|
            DO 420 J = 1, NSZ
 | 
						|
               DO 410 I = 1, NSZB
 | 
						|
                  AB( I, J ) = CZERO
 | 
						|
  410          CONTINUE
 | 
						|
  420       CONTINUE
 | 
						|
            DO 430 J = 1, N
 | 
						|
               AB( 1, J ) = POW( 2*J+1 )
 | 
						|
  430       CONTINUE
 | 
						|
*
 | 
						|
            CALL CPBEQU( 'L', N, KL, AB, NSZB, R, RCOND, NORM, INFO )
 | 
						|
*
 | 
						|
            IF( INFO.NE.0 ) THEN
 | 
						|
               RESLTS( 5 ) = ONE
 | 
						|
            ELSE
 | 
						|
               IF( N.NE.0 ) THEN
 | 
						|
                  RESLTS( 5 ) = MAX( RESLTS( 5 ),
 | 
						|
     $                          ABS( ( RCOND-RPOW( N ) ) / RPOW( N ) ) )
 | 
						|
                  RESLTS( 5 ) = MAX( RESLTS( 5 ),
 | 
						|
     $                          ABS( ( NORM-POW( 2*N+1 ) ) / POW( 2*N+
 | 
						|
     $                          1 ) ) )
 | 
						|
                  DO 440 I = 1, N
 | 
						|
                     RESLTS( 5 ) = MAX( RESLTS( 5 ),
 | 
						|
     $                             ABS( ( R( I )-RPOW( I+1 ) ) /
 | 
						|
     $                             RPOW( I+1 ) ) )
 | 
						|
  440             CONTINUE
 | 
						|
               END IF
 | 
						|
            END IF
 | 
						|
            IF( N.NE.0 ) THEN
 | 
						|
               AB( 1, MAX( N-1, 1 ) ) = -CONE
 | 
						|
               CALL CPBEQU( 'L', N, KL, AB, NSZB, R, RCOND, NORM, INFO )
 | 
						|
               IF( INFO.NE.MAX( N-1, 1 ) )
 | 
						|
     $            RESLTS( 5 ) = ONE
 | 
						|
            END IF
 | 
						|
  450    CONTINUE
 | 
						|
  460 CONTINUE
 | 
						|
      RESLTS( 5 ) = RESLTS( 5 ) / EPS
 | 
						|
      OK = ( RESLTS( 1 ).LE.THRESH ) .AND.
 | 
						|
     $     ( RESLTS( 2 ).LE.THRESH ) .AND.
 | 
						|
     $     ( RESLTS( 3 ).LE.THRESH ) .AND.
 | 
						|
     $     ( RESLTS( 4 ).LE.THRESH ) .AND. ( RESLTS( 5 ).LE.THRESH )
 | 
						|
      WRITE( NOUT, FMT = * )
 | 
						|
      IF( OK ) THEN
 | 
						|
         WRITE( NOUT, FMT = 9999 )PATH
 | 
						|
      ELSE
 | 
						|
         IF( RESLTS( 1 ).GT.THRESH )
 | 
						|
     $      WRITE( NOUT, FMT = 9998 )RESLTS( 1 ), THRESH
 | 
						|
         IF( RESLTS( 2 ).GT.THRESH )
 | 
						|
     $      WRITE( NOUT, FMT = 9997 )RESLTS( 2 ), THRESH
 | 
						|
         IF( RESLTS( 3 ).GT.THRESH )
 | 
						|
     $      WRITE( NOUT, FMT = 9996 )RESLTS( 3 ), THRESH
 | 
						|
         IF( RESLTS( 4 ).GT.THRESH )
 | 
						|
     $      WRITE( NOUT, FMT = 9995 )RESLTS( 4 ), THRESH
 | 
						|
         IF( RESLTS( 5 ).GT.THRESH )
 | 
						|
     $      WRITE( NOUT, FMT = 9994 )RESLTS( 5 ), THRESH
 | 
						|
      END IF
 | 
						|
 9999 FORMAT( 1X, 'All tests for ', A3,
 | 
						|
     $      ' routines passed the threshold' )
 | 
						|
 9998 FORMAT( ' CGEEQU failed test with value ', E10.3, ' exceeding',
 | 
						|
     $      ' threshold ', E10.3 )
 | 
						|
 9997 FORMAT( ' CGBEQU failed test with value ', E10.3, ' exceeding',
 | 
						|
     $      ' threshold ', E10.3 )
 | 
						|
 9996 FORMAT( ' CPOEQU failed test with value ', E10.3, ' exceeding',
 | 
						|
     $      ' threshold ', E10.3 )
 | 
						|
 9995 FORMAT( ' CPPEQU failed test with value ', E10.3, ' exceeding',
 | 
						|
     $      ' threshold ', E10.3 )
 | 
						|
 9994 FORMAT( ' CPBEQU failed test with value ', E10.3, ' exceeding',
 | 
						|
     $      ' threshold ', E10.3 )
 | 
						|
      RETURN
 | 
						|
*
 | 
						|
*     End of CCHKEQ
 | 
						|
*
 | 
						|
      END
 |