5 SUBROUTINE dorth (VNEW, V, HES, N, LL, LDHES, KMP, SNORMW)
57 INTEGER N, LL, LDHES, KMP
58 DOUBLE PRECISION VNEW, V, HES, SNORMW
59 dimension vnew(*), v(n,*), hes(ldhes,*)
61 DOUBLE PRECISION ARG, DDOT, DNRM2, SUMDSQ, TEM, VNRM
66 vnrm = dnrm2(n, vnew, 1)
74 hes(i,ll) = ddot(n, v(1,i), 1, vnew, 1)
76 CALL daxpy (n, tem, v(1,i), 1, vnew, 1)
85 snormw = dnrm2(n, vnew, 1)
86 IF (vnrm + 0.001d0*snormw .NE. vnrm)
RETURN
89 tem = -ddot(n, v(1,i), 1, vnew, 1)
90 IF (hes(i,ll) + 0.001d0*tem .EQ. hes(i,ll))
GO TO 30
91 hes(i,ll) = hes(i,ll) - tem
92 CALL daxpy (n, tem, v(1,i), 1, vnew, 1)
93 sumdsq = sumdsq + tem**2
95 IF (sumdsq .EQ. 0.0d0)
RETURN
96 arg =
max(0.0d0,snormw**2 - sumdsq)
charNDArray max(char d, const charNDArray &m)
subroutine dorth(VNEW, V, HES, N, LL, LDHES, KMP, SNORMW)