1 SUBROUTINE cacon(Z, FNU, KODE, MR, N, Y, NZ, RL, FNUL, TOL, ELIM,
16 COMPLEX CK, CONE, CS, CSCL, CSCR, CSGN, CSPN, CSS, CSR, C1, C2,
17 * rz, sc1, sc2, st, s1, s2, y, z, zn, cy
18 REAL ALIM, ARG, ASCLE, AS2, BSCLE, BRY, CPN, C1I, C1M, C1R, ELIM,
19 * fmr, fnu, fnul, pi, rl, sgn, spn, tol, yy,
r1mach
20 INTEGER I, INU, IUF, KFLAG, KODE, MR, N, NN, NW, NZ
21 dimension y(n), cy(2), css(3), csr(3), bry(3)
22 DATA pi / 3.14159265358979324e0 /
23 DATA cone / (1.0e0,0.0e0) /
27 CALL
cbinu(zn, fnu, kode, nn, y, nw, rl, fnul, tol, elim, alim)
33 CALL
cbknu(zn, fnu, kode, nn, cy, nw, tol, elim, alim)
38 csgn =
cmplx(0.0e0,sgn)
39 IF (kode.EQ.1) go to 10
43 csgn = csgn*
cmplx(cpn,spn)
50 arg = (fnu-float(inu))*sgn
54 IF (
mod(inu,2).EQ.1) cspn = -cspn
58 ascle = 1.0e+3*
r1mach(1)/tol
59 IF (kode.EQ.1) go to 20
60 CALL
cs1s2(zn, c1, c2, nw, ascle, alim, iuf)
64 y(1) = cspn*c1 + csgn*c2
70 IF (kode.EQ.1) go to 30
71 CALL
cs1s2(zn, c1, c2, nw, ascle, alim, iuf)
75 y(2) = cspn*c1 + csgn*c2
78 rz =
cmplx(2.0e0,0.0e0)/zn
79 ck =
cmplx(fnu+1.0e0,0.0e0)*rz
83 cscl =
cmplx(1.0e0/tol,0.0e0)
84 cscr =
cmplx(tol,0.0e0)
96 IF (as2.GT.bry(1)) go to 40
100 IF (as2.LT.bry(2)) go to 50
114 IF (kode.EQ.1) go to 60
115 IF (iuf.LT.0) go to 60
116 CALL
cs1s2(zn, c1, c2, nw, ascle, alim, iuf)
120 IF (iuf.NE.3) go to 60
126 y(i) = cspn*c1 + csgn*c2
129 IF (kflag.GE.3) go to 70
135 IF (c1m.LE.bscle) go to 70
subroutine cacon(Z, FNU, KODE, MR, N, Y, NZ, RL, FNUL, TOL, ELIM, ALIM)
std::string dimension(void) const
octave_int< T > mod(const octave_int< T > &x, const octave_int< T > &y)
octave_value sin(void) const
subroutine cs1s2(ZR, S1, S2, NZ, ASCLE, ALIM, IUF)
octave_value cos(void) const
subroutine cbknu(Z, FNU, KODE, N, Y, NZ, TOL, ELIM, ALIM)
subroutine cbinu(Z, FNU, KODE, N, CY, NZ, RL, FNUL, TOL, ELIM, ALIM)