Constructor.
Constructor Set Vavilov parameters kappa and beta2 amd define whether to calculate density fcn or distribution fcn
51 const double xp[9] = { 9.29,2.47,.89,.36,.15,.07,.03,.02,0.0 };
52 const double xq[7] = { .012,.03,.08,.26,.87,3.83,11.0 };
54 double q, u,
x,
c1, c2, c3, c4,
d1, h4, h5, h6,
q2, x1, d, ll, ul, xf1, xf2, rv;
59 if(kappa < 0.01) kappa = 0.01;
60 if(kappa > 10.) kappa = 10.;
61 if(beta2 < 0.) beta2 = 0.;
62 if(beta2 > 1.) beta2 = 1.;
64 h_[4] = 1. - beta2*0.42278433999999998 + 7.6/kappa;
67 h4 = -7.6/kappa - (beta2 * .57721566 + 1);
74 for (lp = 0; lp < 9; ++lp) {
75 if (kappa >= xp[lp])
break;
78 for (lq = 0; lq < 7; ++lq) {
79 if (kappa <= xq[lq])
break;
88 h_[0] = kappa * (beta2 * .57721566 + 2.) + 9.9166128600000008;
89 if (kappa >= .07) {h_[0] += 6.90775527;}
90 h_[1] = beta2 * kappa;
92 h_[3] = omega_ * 1.5707963250000001;
96 d =
exp(kappa * (beta2 * (.57721566 - h5) + 1.)) * .31830988654751274;
99 a_[n - 1] = omega_ * .31830988654751274;
103 for (k = 1; k <
n; ++
k) {
111 xf1 = kappa * (beta2 * c1 - c4) - x * c2;
112 xf2 = x * c1 + kappa * (c3 + beta2 * c2) +
t0_ * x;
114 d1 = q * d * omega_ *
exp(xf1);
115 a_[l - 1] = d1 *
cos(xf2);
116 b_[l - 1] = -d1 *
sin(xf2);
118 d1 = q * d *
exp(xf1)/
k;
119 a_[l - 1] = d1 *
sin(xf2);
120 b_[l - 1] = d1 *
cos(xf2);
121 a_[n - 1] += q2 *
a_[l - 1];
Sin< T >::type sin(const T &t)
Exp< T >::type exp(const T &t)
int dzero(double a, double b, double &x0, double &rv, double eps, int mxf, F func)
Cos< T >::type cos(const T &t)
double f2(double x, double const *h_)
void sincosint(double x, double &sint, double &cint)
Log< T >::type log(const T &t)
double f1(double x, double const *h_)
Private version of the exponential integral.
const int mode_
returns the limits on the non-zero (mode=0) or normalized region (mode=1)
double expint(double x)
Private version of the sine integral.