1 SUBROUTINE cbesy(Z, FNU, KODE, N, CY, NZ, CWRK, IERR)
144 COMPLEX CWRK, CY, C1, C2, EX, HCI, Z, ZU, ZV
145 REAL ELIM, EY, FNU, R1, R2, TAY, XX, YY, R1MACH, ASCLE, RTOL,
147 INTEGER I, IERR, K, KODE, K1, K2, N, NZ, NZ1, NZ2, I1MACH
154 IF (xx.EQ.0.0e0 .AND. yy.EQ.0.0e0) ierr=1
155 IF (fnu.LT.0.0e0) ierr=1
156 IF (kode.LT.1 .OR. kode.GT.2) ierr=1
158 IF (ierr.NE.0)
RETURN
159 hci =
cmplx(0.0e0,0.5e0)
160 CALL
cbesh(z, fnu, kode, 1, n, cy, nz1, ierr)
161 IF (ierr.NE.0.AND.ierr.NE.3) go
to 170
162 CALL
cbesh(z, fnu, kode, 2, n, cwrk, nz2, ierr)
163 IF (ierr.NE.0.AND.ierr.NE.3) go
to 170
165 IF (kode.EQ.2) go
to 60
167 cy(i) = hci*(cwrk(i)-cy(i))
171 tol = amax1(r1mach(4),1.0
e-18)
174 k = min0(iabs(k1),iabs(k2))
179 elim = 2.303e0*(float(k)*r1m5-3.0e0)
185 IF (tay.LT.elim) ey =
exp(-tay)
186 IF (yy.LT.0.0e0) go
to 90
187 c1 = ex*
cmplx(ey,0.0e0)
192 ascle = r1mach(1)*rtol*1.0
e+3
199 IF (amax1(
abs(aa),
abs(bb)).GT.ascle) go
to 75
200 zv = zv*
cmplx(rtol,0.0e0)
204 zv = zv*
cmplx(atol,0.0e0)
209 IF (amax1(
abs(aa),
abs(bb)).GT.ascle) go
to 85
210 zu = zu*
cmplx(rtol,0.0e0)
214 zu = zu*
cmplx(atol,0.0e0)
216 IF (cy(i).EQ.
cmplx(0.0e0,0.0e0) .AND. ey.EQ.0.0e0) nz = nz + 1
221 c2 = conjg(ex)*
cmplx(ey,0.0e0)
subroutine cbesy(Z, FNU, KODE, N, CY, NZ, CWRK, IERR)
octave_value sin(void) const
may be zero for pure relative error test tem the relative tolerance must be greater than or equal to
subroutine cbesh(Z, FNU, KODE, M, N, CY, NZ, IERR)
OCTAVE_EXPORT octave_value_list etc The functions then dimension(columns)
octave_value cos(void) const
OCTAVE_EXPORT octave_value_list return the value of the option it must match the dimension of the state and the relative tolerance must also be a vector of the same length tem it must match the dimension of the state and the absolute tolerance must also be a vector of the same length The local error test applied at each integration step is xample roup abs(local error in x(i))<