158 SUBROUTINE dorbdb6( M1, M2, N, X1, INCX1, X2, INCX2, Q1, LDQ1, Q2,
159 $ LDQ2, WORK, LWORK, INFO )
166 INTEGER INCX1, INCX2, INFO, LDQ1, LDQ2, LWORK, M1, M2,
170 DOUBLE PRECISION Q1(ldq1,*), Q2(ldq2,*), WORK(*), X1(*), X2(*)
176 DOUBLE PRECISION ALPHA, REALONE, REALZERO
177 parameter( alpha = 0.01d0, realone = 1.0d0,
179 DOUBLE PRECISION NEGONE, ONE, ZERO
180 parameter( negone = -1.0d0, one = 1.0d0, zero = 0.0d0 )
184 DOUBLE PRECISION EPS, NORM, NORM_NEW, SCL, SSQ
187 DOUBLE PRECISION DLAMCH
202 ELSE IF( m2 .LT. 0 )
THEN 204 ELSE IF( n .LT. 0 )
THEN 206 ELSE IF( incx1 .LT. 1 )
THEN 208 ELSE IF( incx2 .LT. 1 )
THEN 210 ELSE IF( ldq1 .LT. max( 1, m1 ) )
THEN 212 ELSE IF( ldq2 .LT. max( 1, m2 ) )
THEN 214 ELSE IF( lwork .LT. n )
THEN 218 IF( info .NE. 0 )
THEN 219 CALL xerbla(
'DORBDB6', -info )
223 eps = dlamch(
'Precision' )
239 CALL dgemv(
'C', m1, n, one, q1, ldq1, x1, incx1, zero, work,
243 CALL dgemv(
'C', m2, n, one, q2, ldq2, x2, incx2, one, work, 1 )
245 CALL dgemv(
'N', m1, n, negone, q1, ldq1, work, 1, one, x1,
247 CALL dgemv(
'N', m2, n, negone, q2, ldq2, work, 1, one, x2,
252 CALL dlassq( m1, x1, incx1, scl, ssq )
253 CALL dlassq( m2, x2, incx2, scl, ssq )
254 norm_new = scl * sqrt(ssq)
260 IF( norm_new .GE. alpha * norm )
THEN 264 IF( norm_new .LE. n * eps * norm )
THEN 265 DO ix = 1, 1 + (m1-1)*incx1, incx1
268 DO ix = 1, 1 + (m2-1)*incx2, incx2
285 CALL dgemv(
'C', m1, n, one, q1, ldq1, x1, incx1, zero, work,
289 CALL dgemv(
'C', m2, n, one, q2, ldq2, x2, incx2, one, work, 1 )
291 CALL dgemv(
'N', m1, n, negone, q1, ldq1, work, 1, one, x1,
293 CALL dgemv(
'N', m2, n, negone, q2, ldq2, work, 1, one, x2,
298 CALL dlassq( m1, x1, incx1, scl, ssq )
299 CALL dlassq( m2, x2, incx2, scl, ssq )
300 norm_new = scl * sqrt(ssq)
306 IF( norm_new .LT. alpha * norm )
THEN 307 DO ix = 1, 1 + (m1-1)*incx1, incx1
310 DO ix = 1, 1 + (m2-1)*incx2, incx2
subroutine dorbdb6(M1, M2, N, X1, INCX1, X2, INCX2, Q1, LDQ1, Q2, LDQ2, WORK, LWORK, INFO)
DORBDB6
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV