123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #include "slatec-internal.hpp"
- integer const c__3 = 3;
- integer const c__19 = 19;
-
- double const bj0cs[19] = { .10025416196893913701073127264074,
- -.66522300776440513177678757831124,
- .2489837034982813137046046872668,
- -.033252723170035769653884341503854,
- .0023114179304694015462904924117729,
- -9.9112774199508092339048519336549e-5,
- 2.8916708643998808884733903747078e-6,
- -6.1210858663032635057818407481516e-8,
- 9.8386507938567841324768748636415e-10,
- -1.2423551597301765145515897006836e-11,
- 1.2654336302559045797915827210363e-13,
- -1.0619456495287244546914817512959e-15,
- 7.4706210758024567437098915584e-18,
- -4.4697032274412780547627007999999e-20,
- 2.3024281584337436200523093333333e-22,
- -1.0319144794166698148522666666666e-24,
- 4.06081782748733227008e-27,
- -1.4143836005240913919999999999999e-29,
- 4.391090549669888e-32 };
- float const r__1 = (float) d1mach_(3) * (float).1;
- integer const ntj0 = initds_(bj0cs, &c__19, &r__1);
- double const xsml = sqrt(d1mach_(3) * 8.);
- double dbesj0_(double const *x)
- {
-
- double ret_val, d__1;
-
- double y;
- double ampl;
- double theta;
- y = abs(*x);
- if (y > 4.) {
- goto L20;
- }
- ret_val = 1.;
- if (y > xsml) {
- d__1 = y * .125 * y - 1.;
- ret_val = dcsevl_(&d__1, bj0cs, &ntj0);
- }
- return ret_val;
- L20:
- d9b0mp_(&y, &l, &theta);
- ret_val = ampl * cos(theta);
- return ret_val;
- }
|