LAPACK  3.9.1
LAPACK: Linear Algebra PACKage

◆ check0()

subroutine check0 ( real  SFAC)

Definition at line 123 of file sblat1.f.

124 * .. Parameters ..
125  INTEGER NOUT
126  parameter(nout=6)
127 * .. Scalar Arguments ..
128  REAL SFAC
129 * .. Scalars in Common ..
130  INTEGER ICASE, INCX, INCY, N
131  LOGICAL PASS
132 * .. Local Scalars ..
133  REAL D12, SA, SB, SC, SS
134  INTEGER I, K
135 * .. Local Arrays ..
136  REAL DA1(8), DATRUE(8), DB1(8), DBTRUE(8), DC1(8),
137  + DS1(8), DAB(4,9), DTEMP(9), DTRUE(9,9)
138 * .. External Subroutines ..
139  EXTERNAL srotg, srotmg, stest, stest1
140 * .. Common blocks ..
141  COMMON /combla/icase, n, incx, incy, pass
142 * .. Data statements ..
143  DATA da1/0.3e0, 0.4e0, -0.3e0, -0.4e0, -0.3e0, 0.0e0,
144  + 0.0e0, 1.0e0/
145  DATA db1/0.4e0, 0.3e0, 0.4e0, 0.3e0, -0.4e0, 0.0e0,
146  + 1.0e0, 0.0e0/
147  DATA dc1/0.6e0, 0.8e0, -0.6e0, 0.8e0, 0.6e0, 1.0e0,
148  + 0.0e0, 1.0e0/
149  DATA ds1/0.8e0, 0.6e0, 0.8e0, -0.6e0, 0.8e0, 0.0e0,
150  + 1.0e0, 0.0e0/
151  DATA datrue/0.5e0, 0.5e0, 0.5e0, -0.5e0, -0.5e0,
152  + 0.0e0, 1.0e0, 1.0e0/
153  DATA dbtrue/0.0e0, 0.6e0, 0.0e0, -0.6e0, 0.0e0,
154  + 0.0e0, 1.0e0, 0.0e0/
155 * INPUT FOR MODIFIED GIVENS
156  DATA dab/ .1e0,.3e0,1.2e0,.2e0,
157  a .7e0, .2e0, .6e0, 4.2e0,
158  b 0.e0,0.e0,0.e0,0.e0,
159  c 4.e0, -1.e0, 2.e0, 4.e0,
160  d 6.e-10, 2.e-2, 1.e5, 10.e0,
161  e 4.e10, 2.e-2, 1.e-5, 10.e0,
162  f 2.e-10, 4.e-2, 1.e5, 10.e0,
163  g 2.e10, 4.e-2, 1.e-5, 10.e0,
164  h 4.e0, -2.e0, 8.e0, 4.e0 /
165 * TRUE RESULTS FOR MODIFIED GIVENS
166  DATA dtrue/0.e0,0.e0, 1.3e0, .2e0, 0.e0,0.e0,0.e0, .5e0, 0.e0,
167  a 0.e0,0.e0, 4.5e0, 4.2e0, 1.e0, .5e0, 0.e0,0.e0,0.e0,
168  b 0.e0,0.e0,0.e0,0.e0, -2.e0, 0.e0,0.e0,0.e0,0.e0,
169  c 0.e0,0.e0,0.e0, 4.e0, -1.e0, 0.e0,0.e0,0.e0,0.e0,
170  d 0.e0, 15.e-3, 0.e0, 10.e0, -1.e0, 0.e0, -1.e-4,
171  e 0.e0, 1.e0,
172  f 0.e0,0.e0, 6144.e-5, 10.e0, -1.e0, 4096.e0, -1.e6,
173  g 0.e0, 1.e0,
174  h 0.e0,0.e0,15.e0,10.e0,-1.e0, 5.e-5, 0.e0,1.e0,0.e0,
175  i 0.e0,0.e0, 15.e0, 10.e0, -1. e0, 5.e5, -4096.e0,
176  j 1.e0, 4096.e-6,
177  k 0.e0,0.e0, 7.e0, 4.e0, 0.e0,0.e0, -.5e0, -.25e0, 0.e0/
178 * 4096 = 2 ** 12
179  DATA d12 /4096.e0/
180  dtrue(1,1) = 12.e0 / 130.e0
181  dtrue(2,1) = 36.e0 / 130.e0
182  dtrue(7,1) = -1.e0 / 6.e0
183  dtrue(1,2) = 14.e0 / 75.e0
184  dtrue(2,2) = 49.e0 / 75.e0
185  dtrue(9,2) = 1.e0 / 7.e0
186  dtrue(1,5) = 45.e-11 * (d12 * d12)
187  dtrue(3,5) = 4.e5 / (3.e0 * d12)
188  dtrue(6,5) = 1.e0 / d12
189  dtrue(8,5) = 1.e4 / (3.e0 * d12)
190  dtrue(1,6) = 4.e10 / (1.5e0 * d12 * d12)
191  dtrue(2,6) = 2.e-2 / 1.5e0
192  dtrue(8,6) = 5.e-7 * d12
193  dtrue(1,7) = 4.e0 / 150.e0
194  dtrue(2,7) = (2.e-10 / 1.5e0) * (d12 * d12)
195  dtrue(7,7) = -dtrue(6,5)
196  dtrue(9,7) = 1.e4 / d12
197  dtrue(1,8) = dtrue(1,7)
198  dtrue(2,8) = 2.e10 / (1.5e0 * d12 * d12)
199  dtrue(1,9) = 32.e0 / 7.e0
200  dtrue(2,9) = -16.e0 / 7.e0
201 * .. Executable Statements ..
202 *
203 * Compute true values which cannot be prestored
204 * in decimal notation
205 *
206  dbtrue(1) = 1.0e0/0.6e0
207  dbtrue(3) = -1.0e0/0.6e0
208  dbtrue(5) = 1.0e0/0.6e0
209 *
210  DO 20 k = 1, 8
211 * .. Set N=K for identification in output if any ..
212  n = k
213  IF (icase.EQ.3) THEN
214 * .. SROTG ..
215  IF (k.GT.8) GO TO 40
216  sa = da1(k)
217  sb = db1(k)
218  CALL srotg(sa,sb,sc,ss)
219  CALL stest1(sa,datrue(k),datrue(k),sfac)
220  CALL stest1(sb,dbtrue(k),dbtrue(k),sfac)
221  CALL stest1(sc,dc1(k),dc1(k),sfac)
222  CALL stest1(ss,ds1(k),ds1(k),sfac)
223  ELSEIF (icase.EQ.11) THEN
224 * .. SROTMG ..
225  DO i=1,4
226  dtemp(i)= dab(i,k)
227  dtemp(i+4) = 0.0
228  END DO
229  dtemp(9) = 0.0
230  CALL srotmg(dtemp(1),dtemp(2),dtemp(3),dtemp(4),dtemp(5))
231  CALL stest(9,dtemp,dtrue(1,k),dtrue(1,k),sfac)
232  ELSE
233  WRITE (nout,*) ' Shouldn''t be here in CHECK0'
234  stop
235  END IF
236  20 CONTINUE
237  40 RETURN
subroutine stest(LEN, SCOMP, STRUE, SSIZE, SFAC)
Definition: cblat1.f:597
subroutine stest1(SCOMP1, STRUE1, SSIZE, SFAC)
Definition: cblat1.f:653
subroutine srotg(SA, SB, C, S)
SROTG
Definition: srotg.f:69
subroutine srotmg(SD1, SD2, SX1, SY1, SPARAM)
SROTMG
Definition: srotmg.f:90
Here is the call graph for this function: