1 SUBROUTINE ddajac (NEQ, X, Y, YPRIME, DELTA, CJ, H,
2 + ier, wt, e, wm, iwm, res, ires, uround, jac, rpar,
59 INTEGER NEQ, IER, IWM(*), IRES, IPAR(*), NTEMP
61 * x, y(*), yprime(*), delta(*), cj, h, wt(*), e(*), wm(*),
65 EXTERNAL dgbtrf, dgetrf
67 INTEGER I, I1, I2, II, IPSAVE, ISAVE, J, K, L, LENPD, LIPVT,
68 * lml, lmtype, lmu, mba, mband, meb1, meband, msave, mtype, n,
70 DOUBLE PRECISION DEL, DELINV, SQUR, YPSAVE, YSAVE
82 go to(100,200,300,400,500),mtype
89 CALL jac(x,y,yprime,wm(npd),cj,rpar,ipar)
99 del=sign(del,h*yprime(i))
104 yprime(i)=yprime(i)+cj*del
105 CALL res(x,y,yprime,e,ires,rpar,ipar)
106 IF (ires .LT. 0)
RETURN
109 220 wm(nrow+l)=(e(l)-delta(l))*delinv
117 230 CALL dgetrf( neq, neq, wm(npd), neq, iwm(lipvt), ier)
126 400 lenpd=(2*iwm(lml)+iwm(lmu)+1)*neq
128 410 wm(npdm1+i)=0.0d0
129 CALL jac(x,y,yprime,wm(npd),cj,rpar,ipar)
130 meband=2*iwm(lml)+iwm(lmu)+1
135 500 mband=iwm(lml)+iwm(lmu)+1
137 meband=mband+iwm(lml)
148 wm(ipsave+k)=yprime(n)
150 del=sign(del,h*yprime(n))
153 510 yprime(n)=yprime(n)+cj*del
154 CALL res(x,y,yprime,e,ires,rpar,ipar)
155 IF (ires .LT. 0)
RETURN
159 yprime(n)=wm(ipsave+k)
161 del=sign(del,h*yprime(n))
164 i1=
max(1,(n-iwm(lmu)))
165 i2=
min(neq,(n+iwm(lml)))
166 ii=n*meb1-iwm(lml)+npdm1
168 520 wm(ii+i)=(e(i)-delta(i))*delinv
174 550 CALL dgbtrf(neq, neq, iwm(lml), iwm(lmu), wm(npd), meband,
subroutine ddajac(NEQ, X, Y, YPRIME, DELTA, CJ, H, IER, WT, E, WM, IWM, RES, IRES, UROUND, JAC, RPAR, IPAR, NTEMP)
charNDArray max(char d, const charNDArray &m)
octave_value sqrt(void) const
charNDArray min(char d, const charNDArray &m)