LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ check0()

subroutine check0 ( real  sfac)

Definition at line 129 of file sblat1.f.

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