1 SUBROUTINE zacai(ZR, ZI, FNU, KODE, MR, N, YR, YI, NZ, RL, TOL,
20 DOUBLE PRECISION ALIM, ARG, ASCLE, AZ, CSGNR, CSGNI, CSPNR,
21 * cspni, c1r, c1i, c2r, c2i, cyr, cyi, dfnu, elim, fmr, fnu, pi,
22 * rl, sgn, tol, yy, yr, yi, zr, zi, znr, zni,
d1mach,
xzabs
23 INTEGER INU, IUF, KODE, MR, N, NN, NW, NZ
24 dimension yr(n), yi(n), cyr(2), cyi(2)
25 DATA pi / 3.14159265358979324d0 /
31 dfnu = fnu + dble(float(n-1))
32 IF (az.LE.2.0d0)
GO TO 10
33 IF (az*az*0.25d0.GT.dfnu+1.0d0)
GO TO 20
38 CALL zseri(znr, zni, fnu, kode, nn, yr, yi, nw, tol, elim, alim)
41 IF (az.LT.rl)
GO TO 30
45 CALL zasyi(znr, zni, fnu, kode, nn, yr, yi, nw, rl, tol, elim,
53 CALL zmlri(znr, zni, fnu, kode, nn, yr, yi, nw, tol)
59 CALL zbknu(znr, zni, fnu, kode, 1, cyr, cyi, nw, tol, elim, alim)
65 IF (kode.EQ.1)
GO TO 50
67 csgnr = -csgni*dsin(yy)
68 csgni = csgni*dcos(yy)
75 arg = (fnu-dble(float(inu)))*sgn
78 IF (
mod(inu,2).EQ.0)
GO TO 60
86 IF (kode.EQ.1)
GO TO 70
88 ascle = 1.0d+3*
d1mach(1)/tol
89 CALL zs1s2(znr, zni, c1r, c1i, c2r, c2i, nw, ascle, alim, iuf)
92 yr(1) = cspnr*c1r - cspni*c1i + csgnr*c2r - csgni*c2i
93 yi(1) = cspnr*c1i + cspni*c1r + csgnr*c2i + csgni*c2r
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 zacai(ZR, ZI, FNU, KODE, MR, N, YR, YI, NZ, RL, TOL, ELIM, ALIM)
subroutine zasyi(ZR, ZI, FNU, KODE, N, YR, YI, NZ, RL, TOL, ELIM, ALIM)
subroutine zbknu(ZR, ZI, FNU, KODE, N, YR, YI, NZ, TOL, ELIM, ALIM)
subroutine zmlri(ZR, ZI, FNU, KODE, N, YR, YI, NZ, TOL)
subroutine zs1s2(ZRR, ZRI, S1R, S1I, S2R, S2I, NZ, ASCLE, ALIM, IUF)
subroutine zseri(ZR, ZI, FNU, KODE, N, YR, YI, NZ, TOL, ELIM, ALIM)