LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
dget31.f
Go to the documentation of this file.
00001 *> \brief \b DGET31
00002 *
00003 *  =========== DOCUMENTATION ===========
00004 *
00005 * Online html documentation available at 
00006 *            http://www.netlib.org/lapack/explore-html/ 
00007 *
00008 *  Definition:
00009 *  ===========
00010 *
00011 *       SUBROUTINE DGET31( RMAX, LMAX, NINFO, KNT )
00012 * 
00013 *       .. Scalar Arguments ..
00014 *       INTEGER            KNT, LMAX
00015 *       DOUBLE PRECISION   RMAX
00016 *       ..
00017 *       .. Array Arguments ..
00018 *       INTEGER            NINFO( 2 )
00019 *       ..
00020 *  
00021 *
00022 *> \par Purpose:
00023 *  =============
00024 *>
00025 *> \verbatim
00026 *>
00027 *> DGET31 tests DLALN2, a routine for solving
00028 *>
00029 *>    (ca A - w D)X = sB
00030 *>
00031 *> where A is an NA by NA matrix (NA=1 or 2 only), w is a real (NW=1) or
00032 *> complex (NW=2) constant, ca is a real constant, D is an NA by NA real
00033 *> diagonal matrix, and B is an NA by NW matrix (when NW=2 the second
00034 *> column of B contains the imaginary part of the solution).  The code
00035 *> returns X and s, where s is a scale factor, less than or equal to 1,
00036 *> which is chosen to avoid overflow in X.
00037 *>
00038 *> If any singular values of ca A-w D are less than another input
00039 *> parameter SMIN, they are perturbed up to SMIN.
00040 *>
00041 *> The test condition is that the scaled residual
00042 *>
00043 *>     norm( (ca A-w D)*X - s*B ) /
00044 *>           ( max( ulp*norm(ca A-w D), SMIN )*norm(X) )
00045 *>
00046 *> should be on the order of 1.  Here, ulp is the machine precision.
00047 *> Also, it is verified that SCALE is less than or equal to 1, and that
00048 *> XNORM = infinity-norm(X).
00049 *> \endverbatim
00050 *
00051 *  Arguments:
00052 *  ==========
00053 *
00054 *> \param[out] RMAX
00055 *> \verbatim
00056 *>          RMAX is DOUBLE PRECISION
00057 *>          Value of the largest test ratio.
00058 *> \endverbatim
00059 *>
00060 *> \param[out] LMAX
00061 *> \verbatim
00062 *>          LMAX is INTEGER
00063 *>          Example number where largest test ratio achieved.
00064 *> \endverbatim
00065 *>
00066 *> \param[out] NINFO
00067 *> \verbatim
00068 *>          NINFO is INTEGER array, dimension (3)
00069 *>          NINFO(1) = number of examples with INFO less than 0
00070 *>          NINFO(2) = number of examples with INFO greater than 0
00071 *> \endverbatim
00072 *>
00073 *> \param[out] KNT
00074 *> \verbatim
00075 *>          KNT is INTEGER
00076 *>          Total number of examples tested.
00077 *> \endverbatim
00078 *
00079 *  Authors:
00080 *  ========
00081 *
00082 *> \author Univ. of Tennessee 
00083 *> \author Univ. of California Berkeley 
00084 *> \author Univ. of Colorado Denver 
00085 *> \author NAG Ltd. 
00086 *
00087 *> \date November 2011
00088 *
00089 *> \ingroup double_eig
00090 *
00091 *  =====================================================================
00092       SUBROUTINE DGET31( RMAX, LMAX, NINFO, KNT )
00093 *
00094 *  -- LAPACK test routine (version 3.4.0) --
00095 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00096 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00097 *     November 2011
00098 *
00099 *     .. Scalar Arguments ..
00100       INTEGER            KNT, LMAX
00101       DOUBLE PRECISION   RMAX
00102 *     ..
00103 *     .. Array Arguments ..
00104       INTEGER            NINFO( 2 )
00105 *     ..
00106 *
00107 *  =====================================================================
00108 *
00109 *     .. Parameters ..
00110       DOUBLE PRECISION   ZERO, HALF, ONE
00111       PARAMETER          ( ZERO = 0.0D0, HALF = 0.5D0, ONE = 1.0D0 )
00112       DOUBLE PRECISION   TWO, THREE, FOUR
00113       PARAMETER          ( TWO = 2.0D0, THREE = 3.0D0, FOUR = 4.0D0 )
00114       DOUBLE PRECISION   SEVEN, TEN
00115       PARAMETER          ( SEVEN = 7.0D0, TEN = 10.0D0 )
00116       DOUBLE PRECISION   TWNONE
00117       PARAMETER          ( TWNONE = 21.0D0 )
00118 *     ..
00119 *     .. Local Scalars ..
00120       INTEGER            IA, IB, ICA, ID1, ID2, INFO, ISMIN, ITRANS,
00121      $                   IWI, IWR, NA, NW
00122       DOUBLE PRECISION   BIGNUM, CA, D1, D2, DEN, EPS, RES, SCALE, SMIN,
00123      $                   SMLNUM, TMP, UNFL, WI, WR, XNORM
00124 *     ..
00125 *     .. Local Arrays ..
00126       LOGICAL            LTRANS( 0: 1 )
00127       DOUBLE PRECISION   A( 2, 2 ), B( 2, 2 ), VAB( 3 ), VCA( 5 ),
00128      $                   VDD( 4 ), VSMIN( 4 ), VWI( 4 ), VWR( 4 ),
00129      $                   X( 2, 2 )
00130 *     ..
00131 *     .. External Functions ..
00132       DOUBLE PRECISION   DLAMCH
00133       EXTERNAL           DLAMCH
00134 *     ..
00135 *     .. External Subroutines ..
00136       EXTERNAL           DLABAD, DLALN2
00137 *     ..
00138 *     .. Intrinsic Functions ..
00139       INTRINSIC          ABS, MAX, SQRT
00140 *     ..
00141 *     .. Data statements ..
00142       DATA               LTRANS / .FALSE., .TRUE. /
00143 *     ..
00144 *     .. Executable Statements ..
00145 *
00146 *     Get machine parameters
00147 *
00148       EPS = DLAMCH( 'P' )
00149       UNFL = DLAMCH( 'U' )
00150       SMLNUM = DLAMCH( 'S' ) / EPS
00151       BIGNUM = ONE / SMLNUM
00152       CALL DLABAD( SMLNUM, BIGNUM )
00153 *
00154 *     Set up test case parameters
00155 *
00156       VSMIN( 1 ) = SMLNUM
00157       VSMIN( 2 ) = EPS
00158       VSMIN( 3 ) = ONE / ( TEN*TEN )
00159       VSMIN( 4 ) = ONE / EPS
00160       VAB( 1 ) = SQRT( SMLNUM )
00161       VAB( 2 ) = ONE
00162       VAB( 3 ) = SQRT( BIGNUM )
00163       VWR( 1 ) = ZERO
00164       VWR( 2 ) = HALF
00165       VWR( 3 ) = TWO
00166       VWR( 4 ) = ONE
00167       VWI( 1 ) = SMLNUM
00168       VWI( 2 ) = EPS
00169       VWI( 3 ) = ONE
00170       VWI( 4 ) = TWO
00171       VDD( 1 ) = SQRT( SMLNUM )
00172       VDD( 2 ) = ONE
00173       VDD( 3 ) = TWO
00174       VDD( 4 ) = SQRT( BIGNUM )
00175       VCA( 1 ) = ZERO
00176       VCA( 2 ) = SQRT( SMLNUM )
00177       VCA( 3 ) = EPS
00178       VCA( 4 ) = HALF
00179       VCA( 5 ) = ONE
00180 *
00181       KNT = 0
00182       NINFO( 1 ) = 0
00183       NINFO( 2 ) = 0
00184       LMAX = 0
00185       RMAX = ZERO
00186 *
00187 *     Begin test loop
00188 *
00189       DO 190 ID1 = 1, 4
00190          D1 = VDD( ID1 )
00191          DO 180 ID2 = 1, 4
00192             D2 = VDD( ID2 )
00193             DO 170 ICA = 1, 5
00194                CA = VCA( ICA )
00195                DO 160 ITRANS = 0, 1
00196                   DO 150 ISMIN = 1, 4
00197                      SMIN = VSMIN( ISMIN )
00198 *
00199                      NA = 1
00200                      NW = 1
00201                      DO 30 IA = 1, 3
00202                         A( 1, 1 ) = VAB( IA )
00203                         DO 20 IB = 1, 3
00204                            B( 1, 1 ) = VAB( IB )
00205                            DO 10 IWR = 1, 4
00206                               IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ.
00207      $                            ONE ) THEN
00208                                  WR = VWR( IWR )*A( 1, 1 )
00209                               ELSE
00210                                  WR = VWR( IWR )
00211                               END IF
00212                               WI = ZERO
00213                               CALL DLALN2( LTRANS( ITRANS ), NA, NW,
00214      $                                     SMIN, CA, A, 2, D1, D2, B, 2,
00215      $                                     WR, WI, X, 2, SCALE, XNORM,
00216      $                                     INFO )
00217                               IF( INFO.LT.0 )
00218      $                           NINFO( 1 ) = NINFO( 1 ) + 1
00219                               IF( INFO.GT.0 )
00220      $                           NINFO( 2 ) = NINFO( 2 ) + 1
00221                               RES = ABS( ( CA*A( 1, 1 )-WR*D1 )*
00222      $                              X( 1, 1 )-SCALE*B( 1, 1 ) )
00223                               IF( INFO.EQ.0 ) THEN
00224                                  DEN = MAX( EPS*( ABS( ( CA*A( 1,
00225      $                                 1 )-WR*D1 )*X( 1, 1 ) ) ),
00226      $                                 SMLNUM )
00227                               ELSE
00228                                  DEN = MAX( SMIN*ABS( X( 1, 1 ) ),
00229      $                                 SMLNUM )
00230                               END IF
00231                               RES = RES / DEN
00232                               IF( ABS( X( 1, 1 ) ).LT.UNFL .AND.
00233      $                            ABS( B( 1, 1 ) ).LE.SMLNUM*
00234      $                            ABS( CA*A( 1, 1 )-WR*D1 ) )RES = ZERO
00235                               IF( SCALE.GT.ONE )
00236      $                           RES = RES + ONE / EPS
00237                               RES = RES + ABS( XNORM-ABS( X( 1, 1 ) ) )
00238      $                               / MAX( SMLNUM, XNORM ) / EPS
00239                               IF( INFO.NE.0 .AND. INFO.NE.1 )
00240      $                           RES = RES + ONE / EPS
00241                               KNT = KNT + 1
00242                               IF( RES.GT.RMAX ) THEN
00243                                  LMAX = KNT
00244                                  RMAX = RES
00245                               END IF
00246    10                      CONTINUE
00247    20                   CONTINUE
00248    30                CONTINUE
00249 *
00250                      NA = 1
00251                      NW = 2
00252                      DO 70 IA = 1, 3
00253                         A( 1, 1 ) = VAB( IA )
00254                         DO 60 IB = 1, 3
00255                            B( 1, 1 ) = VAB( IB )
00256                            B( 1, 2 ) = -HALF*VAB( IB )
00257                            DO 50 IWR = 1, 4
00258                               IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ.
00259      $                            ONE ) THEN
00260                                  WR = VWR( IWR )*A( 1, 1 )
00261                               ELSE
00262                                  WR = VWR( IWR )
00263                               END IF
00264                               DO 40 IWI = 1, 4
00265                                  IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND.
00266      $                               CA.EQ.ONE ) THEN
00267                                     WI = VWI( IWI )*A( 1, 1 )
00268                                  ELSE
00269                                     WI = VWI( IWI )
00270                                  END IF
00271                                  CALL DLALN2( LTRANS( ITRANS ), NA, NW,
00272      $                                        SMIN, CA, A, 2, D1, D2, B,
00273      $                                        2, WR, WI, X, 2, SCALE,
00274      $                                        XNORM, INFO )
00275                                  IF( INFO.LT.0 )
00276      $                              NINFO( 1 ) = NINFO( 1 ) + 1
00277                                  IF( INFO.GT.0 )
00278      $                              NINFO( 2 ) = NINFO( 2 ) + 1
00279                                  RES = ABS( ( CA*A( 1, 1 )-WR*D1 )*
00280      $                                 X( 1, 1 )+( WI*D1 )*X( 1, 2 )-
00281      $                                 SCALE*B( 1, 1 ) )
00282                                  RES = RES + ABS( ( -WI*D1 )*X( 1, 1 )+
00283      $                                 ( CA*A( 1, 1 )-WR*D1 )*X( 1, 2 )-
00284      $                                 SCALE*B( 1, 2 ) )
00285                                  IF( INFO.EQ.0 ) THEN
00286                                     DEN = MAX( EPS*( MAX( ABS( CA*A( 1,
00287      $                                    1 )-WR*D1 ), ABS( D1*WI ) )*
00288      $                                    ( ABS( X( 1, 1 ) )+ABS( X( 1,
00289      $                                    2 ) ) ) ), SMLNUM )
00290                                  ELSE
00291                                     DEN = MAX( SMIN*( ABS( X( 1,
00292      $                                    1 ) )+ABS( X( 1, 2 ) ) ),
00293      $                                    SMLNUM )
00294                                  END IF
00295                                  RES = RES / DEN
00296                                  IF( ABS( X( 1, 1 ) ).LT.UNFL .AND.
00297      $                               ABS( X( 1, 2 ) ).LT.UNFL .AND.
00298      $                               ABS( B( 1, 1 ) ).LE.SMLNUM*
00299      $                               ABS( CA*A( 1, 1 )-WR*D1 ) )
00300      $                               RES = ZERO
00301                                  IF( SCALE.GT.ONE )
00302      $                              RES = RES + ONE / EPS
00303                                  RES = RES + ABS( XNORM-
00304      $                                 ABS( X( 1, 1 ) )-
00305      $                                 ABS( X( 1, 2 ) ) ) /
00306      $                                 MAX( SMLNUM, XNORM ) / EPS
00307                                  IF( INFO.NE.0 .AND. INFO.NE.1 )
00308      $                              RES = RES + ONE / EPS
00309                                  KNT = KNT + 1
00310                                  IF( RES.GT.RMAX ) THEN
00311                                     LMAX = KNT
00312                                     RMAX = RES
00313                                  END IF
00314    40                         CONTINUE
00315    50                      CONTINUE
00316    60                   CONTINUE
00317    70                CONTINUE
00318 *
00319                      NA = 2
00320                      NW = 1
00321                      DO 100 IA = 1, 3
00322                         A( 1, 1 ) = VAB( IA )
00323                         A( 1, 2 ) = -THREE*VAB( IA )
00324                         A( 2, 1 ) = -SEVEN*VAB( IA )
00325                         A( 2, 2 ) = TWNONE*VAB( IA )
00326                         DO 90 IB = 1, 3
00327                            B( 1, 1 ) = VAB( IB )
00328                            B( 2, 1 ) = -TWO*VAB( IB )
00329                            DO 80 IWR = 1, 4
00330                               IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ.
00331      $                            ONE ) THEN
00332                                  WR = VWR( IWR )*A( 1, 1 )
00333                               ELSE
00334                                  WR = VWR( IWR )
00335                               END IF
00336                               WI = ZERO
00337                               CALL DLALN2( LTRANS( ITRANS ), NA, NW,
00338      $                                     SMIN, CA, A, 2, D1, D2, B, 2,
00339      $                                     WR, WI, X, 2, SCALE, XNORM,
00340      $                                     INFO )
00341                               IF( INFO.LT.0 )
00342      $                           NINFO( 1 ) = NINFO( 1 ) + 1
00343                               IF( INFO.GT.0 )
00344      $                           NINFO( 2 ) = NINFO( 2 ) + 1
00345                               IF( ITRANS.EQ.1 ) THEN
00346                                  TMP = A( 1, 2 )
00347                                  A( 1, 2 ) = A( 2, 1 )
00348                                  A( 2, 1 ) = TMP
00349                               END IF
00350                               RES = ABS( ( CA*A( 1, 1 )-WR*D1 )*
00351      $                              X( 1, 1 )+( CA*A( 1, 2 ) )*
00352      $                              X( 2, 1 )-SCALE*B( 1, 1 ) )
00353                               RES = RES + ABS( ( CA*A( 2, 1 ) )*
00354      $                              X( 1, 1 )+( CA*A( 2, 2 )-WR*D2 )*
00355      $                              X( 2, 1 )-SCALE*B( 2, 1 ) )
00356                               IF( INFO.EQ.0 ) THEN
00357                                  DEN = MAX( EPS*( MAX( ABS( CA*A( 1,
00358      $                                 1 )-WR*D1 )+ABS( CA*A( 1, 2 ) ),
00359      $                                 ABS( CA*A( 2, 1 ) )+ABS( CA*A( 2,
00360      $                                 2 )-WR*D2 ) )*MAX( ABS( X( 1,
00361      $                                 1 ) ), ABS( X( 2, 1 ) ) ) ),
00362      $                                 SMLNUM )
00363                               ELSE
00364                                  DEN = MAX( EPS*( MAX( SMIN / EPS,
00365      $                                 MAX( ABS( CA*A( 1,
00366      $                                 1 )-WR*D1 )+ABS( CA*A( 1, 2 ) ),
00367      $                                 ABS( CA*A( 2, 1 ) )+ABS( CA*A( 2,
00368      $                                 2 )-WR*D2 ) ) )*MAX( ABS( X( 1,
00369      $                                 1 ) ), ABS( X( 2, 1 ) ) ) ),
00370      $                                 SMLNUM )
00371                               END IF
00372                               RES = RES / DEN
00373                               IF( ABS( X( 1, 1 ) ).LT.UNFL .AND.
00374      $                            ABS( X( 2, 1 ) ).LT.UNFL .AND.
00375      $                            ABS( B( 1, 1 ) )+ABS( B( 2, 1 ) ).LE.
00376      $                            SMLNUM*( ABS( CA*A( 1,
00377      $                            1 )-WR*D1 )+ABS( CA*A( 1,
00378      $                            2 ) )+ABS( CA*A( 2,
00379      $                            1 ) )+ABS( CA*A( 2, 2 )-WR*D2 ) ) )
00380      $                            RES = ZERO
00381                               IF( SCALE.GT.ONE )
00382      $                           RES = RES + ONE / EPS
00383                               RES = RES + ABS( XNORM-
00384      $                              MAX( ABS( X( 1, 1 ) ), ABS( X( 2,
00385      $                              1 ) ) ) ) / MAX( SMLNUM, XNORM ) /
00386      $                              EPS
00387                               IF( INFO.NE.0 .AND. INFO.NE.1 )
00388      $                           RES = RES + ONE / EPS
00389                               KNT = KNT + 1
00390                               IF( RES.GT.RMAX ) THEN
00391                                  LMAX = KNT
00392                                  RMAX = RES
00393                               END IF
00394    80                      CONTINUE
00395    90                   CONTINUE
00396   100                CONTINUE
00397 *
00398                      NA = 2
00399                      NW = 2
00400                      DO 140 IA = 1, 3
00401                         A( 1, 1 ) = VAB( IA )*TWO
00402                         A( 1, 2 ) = -THREE*VAB( IA )
00403                         A( 2, 1 ) = -SEVEN*VAB( IA )
00404                         A( 2, 2 ) = TWNONE*VAB( IA )
00405                         DO 130 IB = 1, 3
00406                            B( 1, 1 ) = VAB( IB )
00407                            B( 2, 1 ) = -TWO*VAB( IB )
00408                            B( 1, 2 ) = FOUR*VAB( IB )
00409                            B( 2, 2 ) = -SEVEN*VAB( IB )
00410                            DO 120 IWR = 1, 4
00411                               IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND. CA.EQ.
00412      $                            ONE ) THEN
00413                                  WR = VWR( IWR )*A( 1, 1 )
00414                               ELSE
00415                                  WR = VWR( IWR )
00416                               END IF
00417                               DO 110 IWI = 1, 4
00418                                  IF( D1.EQ.ONE .AND. D2.EQ.ONE .AND.
00419      $                               CA.EQ.ONE ) THEN
00420                                     WI = VWI( IWI )*A( 1, 1 )
00421                                  ELSE
00422                                     WI = VWI( IWI )
00423                                  END IF
00424                                  CALL DLALN2( LTRANS( ITRANS ), NA, NW,
00425      $                                        SMIN, CA, A, 2, D1, D2, B,
00426      $                                        2, WR, WI, X, 2, SCALE,
00427      $                                        XNORM, INFO )
00428                                  IF( INFO.LT.0 )
00429      $                              NINFO( 1 ) = NINFO( 1 ) + 1
00430                                  IF( INFO.GT.0 )
00431      $                              NINFO( 2 ) = NINFO( 2 ) + 1
00432                                  IF( ITRANS.EQ.1 ) THEN
00433                                     TMP = A( 1, 2 )
00434                                     A( 1, 2 ) = A( 2, 1 )
00435                                     A( 2, 1 ) = TMP
00436                                  END IF
00437                                  RES = ABS( ( CA*A( 1, 1 )-WR*D1 )*
00438      $                                 X( 1, 1 )+( CA*A( 1, 2 ) )*
00439      $                                 X( 2, 1 )+( WI*D1 )*X( 1, 2 )-
00440      $                                 SCALE*B( 1, 1 ) )
00441                                  RES = RES + ABS( ( CA*A( 1,
00442      $                                 1 )-WR*D1 )*X( 1, 2 )+
00443      $                                 ( CA*A( 1, 2 ) )*X( 2, 2 )-
00444      $                                 ( WI*D1 )*X( 1, 1 )-SCALE*
00445      $                                 B( 1, 2 ) )
00446                                  RES = RES + ABS( ( CA*A( 2, 1 ) )*
00447      $                                 X( 1, 1 )+( CA*A( 2, 2 )-WR*D2 )*
00448      $                                 X( 2, 1 )+( WI*D2 )*X( 2, 2 )-
00449      $                                 SCALE*B( 2, 1 ) )
00450                                  RES = RES + ABS( ( CA*A( 2, 1 ) )*
00451      $                                 X( 1, 2 )+( CA*A( 2, 2 )-WR*D2 )*
00452      $                                 X( 2, 2 )-( WI*D2 )*X( 2, 1 )-
00453      $                                 SCALE*B( 2, 2 ) )
00454                                  IF( INFO.EQ.0 ) THEN
00455                                     DEN = MAX( EPS*( MAX( ABS( CA*A( 1,
00456      $                                    1 )-WR*D1 )+ABS( CA*A( 1,
00457      $                                    2 ) )+ABS( WI*D1 ),
00458      $                                    ABS( CA*A( 2,
00459      $                                    1 ) )+ABS( CA*A( 2,
00460      $                                    2 )-WR*D2 )+ABS( WI*D2 ) )*
00461      $                                    MAX( ABS( X( 1,
00462      $                                    1 ) )+ABS( X( 2, 1 ) ),
00463      $                                    ABS( X( 1, 2 ) )+ABS( X( 2,
00464      $                                    2 ) ) ) ), SMLNUM )
00465                                  ELSE
00466                                     DEN = MAX( EPS*( MAX( SMIN / EPS,
00467      $                                    MAX( ABS( CA*A( 1,
00468      $                                    1 )-WR*D1 )+ABS( CA*A( 1,
00469      $                                    2 ) )+ABS( WI*D1 ),
00470      $                                    ABS( CA*A( 2,
00471      $                                    1 ) )+ABS( CA*A( 2,
00472      $                                    2 )-WR*D2 )+ABS( WI*D2 ) ) )*
00473      $                                    MAX( ABS( X( 1,
00474      $                                    1 ) )+ABS( X( 2, 1 ) ),
00475      $                                    ABS( X( 1, 2 ) )+ABS( X( 2,
00476      $                                    2 ) ) ) ), SMLNUM )
00477                                  END IF
00478                                  RES = RES / DEN
00479                                  IF( ABS( X( 1, 1 ) ).LT.UNFL .AND.
00480      $                               ABS( X( 2, 1 ) ).LT.UNFL .AND.
00481      $                               ABS( X( 1, 2 ) ).LT.UNFL .AND.
00482      $                               ABS( X( 2, 2 ) ).LT.UNFL .AND.
00483      $                               ABS( B( 1, 1 ) )+
00484      $                               ABS( B( 2, 1 ) ).LE.SMLNUM*
00485      $                               ( ABS( CA*A( 1, 1 )-WR*D1 )+
00486      $                               ABS( CA*A( 1, 2 ) )+ABS( CA*A( 2,
00487      $                               1 ) )+ABS( CA*A( 2,
00488      $                               2 )-WR*D2 )+ABS( WI*D2 )+ABS( WI*
00489      $                               D1 ) ) )RES = ZERO
00490                                  IF( SCALE.GT.ONE )
00491      $                              RES = RES + ONE / EPS
00492                                  RES = RES + ABS( XNORM-
00493      $                                 MAX( ABS( X( 1, 1 ) )+ABS( X( 1,
00494      $                                 2 ) ), ABS( X( 2,
00495      $                                 1 ) )+ABS( X( 2, 2 ) ) ) ) /
00496      $                                 MAX( SMLNUM, XNORM ) / EPS
00497                                  IF( INFO.NE.0 .AND. INFO.NE.1 )
00498      $                              RES = RES + ONE / EPS
00499                                  KNT = KNT + 1
00500                                  IF( RES.GT.RMAX ) THEN
00501                                     LMAX = KNT
00502                                     RMAX = RES
00503                                  END IF
00504   110                         CONTINUE
00505   120                      CONTINUE
00506   130                   CONTINUE
00507   140                CONTINUE
00508   150             CONTINUE
00509   160          CONTINUE
00510   170       CONTINUE
00511   180    CONTINUE
00512   190 CONTINUE
00513 *
00514       RETURN
00515 *
00516 *     End of DGET31
00517 *
00518       END
 All Files Functions