zbunk.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /* zbunk.f -- translated by f2c (version 20100827).
  2. This file no longer depends on f2c.
  3. */
  4. #include "slatec-internal.hpp"
  5. int zbunk_(double *zr, double *zi, double const *fnu,
  6. integer const *kode, integer *mr, integer const *n, double *yr, double *
  7. yi, integer *nz, double *tol, double *elim, double *alim)
  8. {
  9. double ax, ay;
  10. /* ***BEGIN PROLOGUE ZBUNK */
  11. /* ***SUBSIDIARY */
  12. /* ***PURPOSE Subsidiary to ZBESH and ZBESK */
  13. /* ***LIBRARY SLATEC */
  14. /* ***TYPE ALL (CBUNI-A, ZBUNI-A) */
  15. /* ***AUTHOR Amos, D. E., (SNL) */
  16. /* ***DESCRIPTION */
  17. /* ZBUNK COMPUTES THE K BESSEL FUNCTION FOR FNU.GT.FNUL. */
  18. /* ACCORDING TO THE UNIFORM ASYMPTOTIC EXPANSION FOR K(FNU,Z) */
  19. /* IN ZUNK1 AND THE EXPANSION FOR H(2,FNU,Z) IN ZUNK2 */
  20. /* ***SEE ALSO ZBESH, ZBESK */
  21. /* ***ROUTINES CALLED ZUNK1, ZUNK2 */
  22. /* ***REVISION HISTORY (YYMMDD) */
  23. /* 830501 DATE WRITTEN */
  24. /* 910415 Prologue converted to Version 4.0 format. (BAB) */
  25. /* ***END PROLOGUE ZBUNK */
  26. /* COMPLEX Y,Z */
  27. /* ***FIRST EXECUTABLE STATEMENT ZBUNK */
  28. /* Parameter adjustments */
  29. --yi;
  30. --yr;
  31. /* Function Body */
  32. *nz = 0;
  33. ax = abs(*zr) * 1.7321;
  34. ay = abs(*zi);
  35. if (ay > ax) {
  36. goto L10;
  37. }
  38. /* ----------------------------------------------------------------------- */
  39. /* ASYMPTOTIC EXPANSION FOR K(FNU,Z) FOR LARGE FNU APPLIED IN */
  40. /* -PI/3.LE.ARG(Z).LE.PI/3 */
  41. /* ----------------------------------------------------------------------- */
  42. zunk1_(zr, zi, fnu, kode, mr, n, &yr[1], &yi[1], nz, tol, elim, alim);
  43. goto L20;
  44. L10:
  45. /* ----------------------------------------------------------------------- */
  46. /* ASYMPTOTIC EXPANSION FOR H(2,FNU,Z*EXP(M*HPI)) FOR LARGE FNU */
  47. /* APPLIED IN PI/3.LT.ABS(ARG(Z)).LE.PI/2 WHERE M=+I OR -I */
  48. /* AND HPI=PI/2 */
  49. /* ----------------------------------------------------------------------- */
  50. zunk2_(zr, zi, fnu, kode, mr, n, &yr[1], &yi[1], nz, tol, elim, alim);
  51. L20:
  52. return 0;
  53. } /* zbunk_ */