82 static const int maxit_ = 20;
85 real _a, _gGM, _omega, _f, _jJ2, _omega2, _aomega2;
86 real _e2, _ep2, _b, _eE, _uU0, _gammae, _gammap, _qQ0, _k, _fstar;
88 static real atanzz(real x,
bool alt) {
94 using std::sqrt, std::fabs, std::atan, std::asin, std::asinh, std::atanh;
95 real z = sqrt(fabs(x));
98 (!(x < 0) ? asinh(z) : asin(z)) / sqrt(fabs(x) / (1 + x)) :
99 (!(x < 0) ? atan(z) : atanh(z)) / z);
106 real Jn(
int n)
const;
144 bool geometricp =
true);
264 bool Init()
const {
return _a > 0; }
271 {
return Init() ? _a : Math::NaN(); }
279 {
return Init() ? _gGM : Math::NaN(); }
294 {
return Init() ? ( n == 2 ? _jJ2 : Jn(n)) : Math::NaN(); }
301 {
return Init() ? _omega : Math::NaN(); }
308 {
return Init() ? _f : Math::NaN(); }
315 {
return Init() ? _gammae : Math::NaN(); }
322 {
return Init() ? _gammap : Math::NaN(); }
329 {
return Init() ? _fstar : Math::NaN(); }
336 {
return Init() ? _uU0 : Math::NaN(); }