LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ schkbk()

subroutine schkbk ( integer  NIN,
integer  NOUT 
)

SCHKBK

Purpose:
 SCHKBK tests SGEBAK, a routine for backward transformation of
 the computed right or left eigenvectors if the original matrix
 was preprocessed by balance subroutine SGEBAL.
Parameters
[in]NIN
          NIN is INTEGER
          The logical unit number for input.  NIN > 0.
[in]NOUT
          NOUT is INTEGER
          The logical unit number for output.  NOUT > 0.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
December 2016

Definition at line 57 of file schkbk.f.

57 *
58 * -- LAPACK test routine (version 3.7.0) --
59 * -- LAPACK is a software package provided by Univ. of Tennessee, --
60 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
61 * December 2016
62 *
63 * .. Scalar Arguments ..
64  INTEGER nin, nout
65 * ..
66 *
67 * ======================================================================
68 *
69 * .. Parameters ..
70  INTEGER lde
71  parameter( lde = 20 )
72  REAL zero
73  parameter( zero = 0.0e0 )
74 * ..
75 * .. Local Scalars ..
76  INTEGER i, ihi, ilo, info, j, knt, n, ninfo
77  REAL eps, rmax, safmin, vmax, x
78 * ..
79 * .. Local Arrays ..
80  INTEGER lmax( 2 )
81  REAL e( lde, lde ), ein( lde, lde ), scale( lde )
82 * ..
83 * .. External Functions ..
84  REAL slamch
85  EXTERNAL slamch
86 * ..
87 * .. External Subroutines ..
88  EXTERNAL sgebak
89 * ..
90 * .. Intrinsic Functions ..
91  INTRINSIC abs, max
92 * ..
93 * .. Executable Statements ..
94 *
95  lmax( 1 ) = 0
96  lmax( 2 ) = 0
97  ninfo = 0
98  knt = 0
99  rmax = zero
100  eps = slamch( 'E' )
101  safmin = slamch( 'S' )
102 *
103  10 CONTINUE
104 *
105  READ( nin, fmt = * )n, ilo, ihi
106  IF( n.EQ.0 )
107  $ GO TO 60
108 *
109  READ( nin, fmt = * )( scale( i ), i = 1, n )
110  DO 20 i = 1, n
111  READ( nin, fmt = * )( e( i, j ), j = 1, n )
112  20 CONTINUE
113 *
114  DO 30 i = 1, n
115  READ( nin, fmt = * )( ein( i, j ), j = 1, n )
116  30 CONTINUE
117 *
118  knt = knt + 1
119  CALL sgebak( 'B', 'R', n, ilo, ihi, scale, n, e, lde, info )
120 *
121  IF( info.NE.0 ) THEN
122  ninfo = ninfo + 1
123  lmax( 1 ) = knt
124  END IF
125 *
126  vmax = zero
127  DO 50 i = 1, n
128  DO 40 j = 1, n
129  x = abs( e( i, j )-ein( i, j ) ) / eps
130  IF( abs( e( i, j ) ).GT.safmin )
131  $ x = x / abs( e( i, j ) )
132  vmax = max( vmax, x )
133  40 CONTINUE
134  50 CONTINUE
135 *
136  IF( vmax.GT.rmax ) THEN
137  lmax( 2 ) = knt
138  rmax = vmax
139  END IF
140 *
141  GO TO 10
142 *
143  60 CONTINUE
144 *
145  WRITE( nout, fmt = 9999 )
146  9999 FORMAT( 1x, '.. test output of SGEBAK .. ' )
147 *
148  WRITE( nout, fmt = 9998 )rmax
149  9998 FORMAT( 1x, 'value of largest test error = ', e12.3 )
150  WRITE( nout, fmt = 9997 )lmax( 1 )
151  9997 FORMAT( 1x, 'example number where info is not zero = ', i4 )
152  WRITE( nout, fmt = 9996 )lmax( 2 )
153  9996 FORMAT( 1x, 'example number having largest error = ', i4 )
154  WRITE( nout, fmt = 9995 )ninfo
155  9995 FORMAT( 1x, 'number of examples where info is not 0 = ', i4 )
156  WRITE( nout, fmt = 9994 )knt
157  9994 FORMAT( 1x, 'total number of examples tested = ', i4 )
158 *
159  RETURN
160 *
161 * End of SCHKBK
162 *
subroutine sgebak(JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV, INFO)
SGEBAK
Definition: sgebak.f:132
logical function lde(RI, RJ, LR)
Definition: dblat2.f:2945
real function slamch(CMACH)
SLAMCH
Definition: slamch.f:69
Here is the call graph for this function:
Here is the caller graph for this function: