mirror of
https://github.com/boostorg/math.git
synced 2026-01-29 19:52:08 +00:00
operator()() is deleted.
modified: boost/math/special_functions/detail/bessel_jy_derivatives_series.hpp
This commit is contained in:
@@ -18,26 +18,30 @@ struct bessel_j_derivative_small_z_series_term
|
||||
typedef T result_type;
|
||||
|
||||
bessel_j_derivative_small_z_series_term(T v_, T x)
|
||||
: N(0), v(v_)
|
||||
: N(0), v(v_), term(1), mult(x / 2)
|
||||
{
|
||||
BOOST_MATH_STD_USING
|
||||
mult = x / 2;
|
||||
mult *= -mult;
|
||||
term = 1;
|
||||
// iterate if v == 0; otherwise result of
|
||||
// first term is 0 and tools::sum_series stops
|
||||
if (v == 0)
|
||||
iterate();
|
||||
}
|
||||
T operator()()
|
||||
{
|
||||
BOOST_MATH_STD_USING
|
||||
T r = term * (v + 2 * N);
|
||||
++N;
|
||||
term *= mult / (N * (N + v));
|
||||
return r == 0 ? operator()() : r;
|
||||
iterate();
|
||||
return r;
|
||||
}
|
||||
private:
|
||||
void iterate()
|
||||
{
|
||||
++N;
|
||||
term *= mult / (N * (N + v));
|
||||
}
|
||||
unsigned N;
|
||||
T v;
|
||||
T mult;
|
||||
T term;
|
||||
T mult;
|
||||
};
|
||||
//
|
||||
// Series evaluation for BesselJ'(v, z) as z -> 0.
|
||||
@@ -51,11 +55,11 @@ inline T bessel_j_derivative_small_z_series(T v, T x, const Policy& pol)
|
||||
T prefix;
|
||||
if (v < boost::math::max_factorial<T>::value)
|
||||
{
|
||||
prefix = pow(x / 2, v-1) / 2 / boost::math::tgamma(v+1, pol);
|
||||
prefix = pow(x / 2, v - 1) / 2 / boost::math::tgamma(v + 1, pol);
|
||||
}
|
||||
else
|
||||
{
|
||||
prefix = (v - 1) * log(x / 2) - constants::ln_two<T>() - boost::math::lgamma(v+1, pol);
|
||||
prefix = (v - 1) * log(x / 2) - constants::ln_two<T>() - boost::math::lgamma(v + 1, pol);
|
||||
prefix = exp(prefix);
|
||||
}
|
||||
if (0 == prefix)
|
||||
@@ -81,18 +85,16 @@ struct bessel_y_derivative_small_z_series_term_a
|
||||
bessel_y_derivative_small_z_series_term_a(T v_, T x)
|
||||
: N(0), v(v_)
|
||||
{
|
||||
BOOST_MATH_STD_USING
|
||||
mult = x / 2;
|
||||
mult *= -mult;
|
||||
term = 1;
|
||||
}
|
||||
T operator()()
|
||||
{
|
||||
BOOST_MATH_STD_USING
|
||||
T r = term * (-v + 2 * N);
|
||||
++N;
|
||||
term *= mult / (N * (N - v));
|
||||
return r == 0 ? operator()() : r;
|
||||
return r;
|
||||
}
|
||||
private:
|
||||
unsigned N;
|
||||
@@ -109,18 +111,16 @@ struct bessel_y_derivative_small_z_series_term_b
|
||||
bessel_y_derivative_small_z_series_term_b(T v_, T x)
|
||||
: N(0), v(v_)
|
||||
{
|
||||
BOOST_MATH_STD_USING
|
||||
mult = x / 2;
|
||||
mult *= -mult;
|
||||
term = 1;
|
||||
}
|
||||
T operator()()
|
||||
{
|
||||
BOOST_MATH_STD_USING
|
||||
T r = term * (v + 2 * N);
|
||||
++N;
|
||||
term *= mult / (N * (N + v));
|
||||
return r == 0 ? operator()() : r;
|
||||
return r;
|
||||
}
|
||||
private:
|
||||
unsigned N;
|
||||
|
||||
Reference in New Issue
Block a user