202 double lolimit1, lolimit2, hilimit1, hilimit2;
203 double delta1, delta2;
204 double h1dummy1, h1dummy2;
205 double h1lovalue1, h1lovalue2, h1hivalue1, h1hivalue2;
206 double h2dummy1, h2dummy2;
207 double h2lovalue1, h2lovalue2, h2hivalue1, h2hivalue2;
208 double h3dummy1, h3dummy2;
209 double h3lovalue1, h3lovalue2, h3hivalue1, h3hivalue2;
210 double exparg, besselarg, bessi1overxterm, bessi0term;
211 double expbetaTterm, alphasqTterm;
212 double h1relval, h2relval, h3relval;
213 int doh1 = 1, doh2 = 1, doh3 = 1;
222 if (model->
LTRAtd == 0.0) {
243 if ((i < 0) || ((i == 0) && (exact == 1)))
244 printf(
"LTRAcoeffSetup: i <= 0: some mistake!\n");
260 delta1 = hilimit1 - lolimit1;
263 besselarg = (hilimit1 > model->
LTRAtd) ?
264 model->
LTRAalpha*sqrt(hilimit1*hilimit1 -
267 bessi1overxterm =
bessYY(besselarg, exparg);
271 alphasqTterm*bessi1overxterm;
274 h2hivalue1,lolimit1,hilimit1)/delta1;
279 bessi0term =
bessZZ(besselarg, exparg);
283 bessi0term - expbetaTterm;
284 h3dummy1 =
intlinfunc(lolimit1,hilimit1,h3lovalue1,
285 h3hivalue1,lolimit1,hilimit1)/delta1;
295 delta1 = hilimit1 - lolimit1;
299 h1hivalue1 = (model->
LTRAbeta == 0.0)? hilimit1:
300 ((hilimit1 == 0.0) ? 0.0 :
bessXX(-exparg)*hilimit1 - hilimit1);
301 h1dummy1 = h1hivalue1/delta1;
310 if (doh1 || doh2 || doh3) {
324 h1lovalue2 = h1lovalue1;
325 h1hivalue2 = h1hivalue1;
328 h1lovalue1 = h1hivalue2;
329 h1hivalue1 = (model->
LTRAbeta == 0.0)? hilimit1:
330 ((hilimit1 == 0.0) ? 0.0:
331 bessXX(-exparg)*hilimit1 - hilimit1);
332 h1dummy1 = (h1hivalue1 - h1lovalue1)/delta1;
343 besselarg = (hilimit1 > model->
LTRAtd) ?
344 model->
LTRAalpha*sqrt(hilimit1*hilimit1 -
348 h2lovalue2 = h2lovalue1;
349 h2hivalue2 = h2hivalue1;
352 h2lovalue1 = h2hivalue2;
353 bessi1overxterm =
bessYY(besselarg, exparg);
356 (hilimit1 < model->
LTRAtd)) ? 0.0 :
357 alphasqTterm*bessi1overxterm;
359 h2lovalue1,h2hivalue1,lolimit1,hilimit1)/delta1;
363 h2lovalue2,h2hivalue2,lolimit2,hilimit2);
370 h3lovalue2 = h3lovalue1;
371 h3hivalue2 = h3hivalue1;
374 h3lovalue1 = h3hivalue2;
375 bessi0term =
bessZZ(besselarg, exparg);
377 ((hilimit1 <= model->
LTRAtd) ||
379 bessi0term - expbetaTterm;
380 h3dummy1 =
intlinfunc(lolimit1,hilimit1,h3lovalue1,
381 h3hivalue1,lolimit1,hilimit1)/delta1;
static double intlinfunc()
double LTRAh3dashFirstCoeff
double LTRArlcH2Func(double time, GENmodel *InModel)
double * LTRAh3dashCoeffs
static double twiceintlinfunc()
double * LTRAh1dashCoeffs
double LTRAh1dashFirstCoeff