152 SUBROUTINE dorbdb5( M1, M2, N, X1, INCX1, X2, INCX2, Q1, LDQ1,
154 $ LDQ2, WORK, LWORK, INFO )
161 INTEGER INCX1, INCX2, INFO, LDQ1, LDQ2, LWORK, M1, M2,
165 DOUBLE PRECISION Q1(LDQ1,*), Q2(LDQ2,*), WORK(*), X1(*), X2(*)
171 DOUBLE PRECISION REALZERO
172 PARAMETER ( REALZERO = 0.0d0 )
173 DOUBLE PRECISION ONE, ZERO
174 parameter( one = 1.0d0, zero = 0.0d0 )
177 INTEGER CHILDINFO, I, J
178 DOUBLE PRECISION EPS, NORM, SCL, SSQ
184 DOUBLE PRECISION DLAMCH, DNRM2
185 EXTERNAL DLAMCH, DNRM2
197 ELSE IF( m2 .LT. 0 )
THEN
199 ELSE IF( n .LT. 0 )
THEN
201 ELSE IF( incx1 .LT. 1 )
THEN
203 ELSE IF( incx2 .LT. 1 )
THEN
205 ELSE IF( ldq1 .LT. max( 1, m1 ) )
THEN
207 ELSE IF( ldq2 .LT. max( 1, m2 ) )
THEN
209 ELSE IF( lwork .LT. n )
THEN
213 IF( info .NE. 0 )
THEN
214 CALL xerbla(
'DORBDB5', -info )
218 eps = dlamch(
'Precision' )
224 CALL dlassq( m1, x1, incx1, scl, ssq )
225 CALL dlassq( m2, x2, incx2, scl, ssq )
226 norm = scl * sqrt( ssq )
228 IF( norm .GT. n * eps )
THEN
234 CALL dscal( m1, one / norm, x1, incx1 )
235 CALL dscal( m2, one / norm, x2, incx2 )
236 CALL dorbdb6( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2,
237 $ ldq2, work, lwork, childinfo )
241 IF( dnrm2(m1,x1,incx1) .NE. realzero
242 $ .OR. dnrm2(m2,x2,incx2) .NE. realzero )
THEN
258 CALL dorbdb6( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2,
259 $ ldq2, work, lwork, childinfo )
260 IF( dnrm2(m1,x1,incx1) .NE. realzero
261 $ .OR. dnrm2(m2,x2,incx2) .NE. realzero )
THEN
277 CALL dorbdb6( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2,
278 $ ldq2, work, lwork, childinfo )
279 IF( dnrm2(m1,x1,incx1) .NE. realzero
280 $ .OR. dnrm2(m2,x2,incx2) .NE. realzero )
THEN
subroutine dorbdb5(m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info)
DORBDB5
subroutine dorbdb6(m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info)
DORBDB6