5 SUBROUTINE dorth (VNEW, V, HES, N, LL, LDHES, KMP, SNORMW)
57 INTEGER N, LL, LDHES, KMP
58 DOUBLE PRECISION VNEW, V, HES, SNORMW
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)
subroutine dorth(VNEW, V, HES, N, LL, LDHES, KMP, SNORMW)
may be zero for pure relative error test tem the relative tolerance must be greater than or equal to
OCTAVE_EXPORT octave_value_list etc The functions then dimension(columns)
charNDArray max(char d, const charNDArray &m)
octave_value sqrt(void) const