1 SUBROUTINE zacon(ZR, ZI, FNU, KODE, MR, N, YR, YI, NZ, RL, FNUL,
18 DOUBLE PRECISION ALIM, ARG, ASCLE, AS2, AZN, BRY, BSCLE, CKI,
19 * ckr, coner, cpn, cscl, cscr, csgni, csgnr, cspni, cspnr,
20 * csr, csrr, cssr, cyi, cyr, c1i, c1m, c1r, c2i, c2r, elim, fmr,
21 * fn, fnu, fnul, pi, pti, ptr, razn, rl, rzi, rzr, sc1i, sc1r,
22 * sc2i, sc2r, sgn, spn, sti, str, s1i, s1r, s2i, s2r, tol, yi, yr,
24 INTEGER I, INU, IUF, KFLAG, KODE, MR, N, NN, NW, NZ
25 dimension yr(n), yi(n), cyr(2), cyi(2), cssr(3), csrr(3), bry(3)
26 DATA pi / 3.14159265358979324d0 /
27 DATA zeror,coner / 0.0d0,1.0d0 /
32 CALL zbinu(znr, zni, fnu, kode, nn, yr, yi, nw, rl, fnul, tol,
39 CALL zbknu(znr, zni, fnu, kode, nn, cyr, cyi, nw, tol, elim, alim)
47 IF (kode.EQ.1)
GO TO 10
51 CALL zmlt(csgnr, csgni, cpn, spn, csgnr, csgni)
58 arg = (fnu-dble(float(inu)))*sgn
63 IF (
mod(inu,2).EQ.0)
GO TO 20
72 ascle = 1.0d+3*
d1mach(1)/tol
73 IF (kode.EQ.1)
GO TO 30
74 CALL zs1s2(znr, zni, c1r, c1i, c2r, c2i, nw, ascle, alim, iuf)
79 CALL zmlt(cspnr, cspni, c1r, c1i, str, sti)
80 CALL zmlt(csgnr, csgni, c2r, c2i, ptr, pti)
92 IF (kode.EQ.1)
GO TO 40
93 CALL zs1s2(znr, zni, c1r, c1i, c2r, c2i, nw, ascle, alim, iuf)
98 CALL zmlt(cspnr, cspni, c1r, c1i, str, sti)
99 CALL zmlt(csgnr, csgni, c2r, c2i, ptr, pti)
130 IF (as2.GT.bry(1))
GO TO 50
134 IF (as2.LT.bry(2))
GO TO 60
138 s1r = s1r*cssr(kflag)
139 s1i = s1i*cssr(kflag)
140 s2r = s2r*cssr(kflag)
141 s2i = s2i*cssr(kflag)
146 s2r = ckr*str - cki*sti + s1r
147 s2i = ckr*sti + cki*str + s1i
156 IF (kode.EQ.1)
GO TO 70
157 IF (iuf.LT.0)
GO TO 70
158 CALL zs1s2(znr, zni, c1r, c1i, c2r, c2i, nw, ascle, alim, iuf)
164 IF (iuf.NE.3)
GO TO 70
166 s1r = sc1r*cssr(kflag)
167 s1i = sc1i*cssr(kflag)
168 s2r = sc2r*cssr(kflag)
169 s2i = sc2i*cssr(kflag)
173 ptr = cspnr*c1r - cspni*c1i
174 pti = cspnr*c1i + cspni*c1r
175 yr(i) = ptr + csgnr*c2r - csgni*c2i
176 yi(i) = pti + csgnr*c2i + csgni*c2r
181 IF (kflag.GE.3)
GO TO 80
185 IF (c1m.LE.bscle)
GO TO 80
192 s1r = s1r*cssr(kflag)
193 s1i = s1i*cssr(kflag)
194 s2r = s2r*cssr(kflag)
195 s2i = s2i*cssr(kflag)
double precision function d1mach(i)
octave_int< T > mod(const octave_int< T > &x, const octave_int< T > &y)
double precision function xzabs(ZR, ZI)
subroutine zacon(ZR, ZI, FNU, KODE, MR, N, YR, YI, NZ, RL, FNUL, TOL, ELIM, ALIM)
subroutine zbinu(ZR, ZI, FNU, KODE, N, CYR, CYI, NZ, RL, FNUL, TOL, ELIM, ALIM)
subroutine zbknu(ZR, ZI, FNU, KODE, N, YR, YI, NZ, TOL, ELIM, ALIM)
subroutine zmlt(AR, AI, BR, BI, CR, CI)
subroutine zs1s2(ZRR, ZRI, S1R, S1I, S2R, S2I, NZ, ASCLE, ALIM, IUF)