| 462 |
|
c0 = 1./(i-1 - x); |
| 463 |
|
c1 = -2.*c0; |
| 464 |
|
} else if (x < i-1) { |
| 465 |
< |
c1 = 1./(i - x); |
| 465 |
> |
c1 = 1./(x - i); |
| 466 |
|
c0 = -2.*c1; |
| 467 |
|
} else { |
| 468 |
|
c0 = i+1 - x; |
| 481 |
|
double f; |
| 482 |
|
sd.arr.s = dp->arr.s + i*stride; |
| 483 |
|
if ((sd.arr.s[sd.dim[0].ne] > 0) & ((-FTINY>c0)|(c0>FTINY))) { |
| 484 |
< |
f = ldexp(c0, (int)sd.arr.s[sd.dim[0].ne]-(COLXS+8)); |
| 484 |
> |
f = c0 * cxponent[sd.arr.s[sd.dim[0].ne]]; |
| 485 |
|
for (i = sd.dim[0].ne; i--; ) |
| 486 |
|
rvec[i] += f*(sd.arr.s[i] + .5); |
| 487 |
|
} |
| 488 |
|
sd.arr.s += stride; |
| 489 |
|
if ((sd.arr.s[sd.dim[0].ne] > 0) & ((-FTINY>c1)|(c1>FTINY))) { |
| 490 |
< |
f = ldexp(c1, (int)sd.arr.s[sd.dim[0].ne]-(COLXS+8)); |
| 490 |
> |
f = c1 * cxponent[sd.arr.s[sd.dim[0].ne]]; |
| 491 |
|
for (i = sd.dim[0].ne; i--; ) |
| 492 |
|
rvec[i] += f*(sd.arr.s[i] + .5); |
| 493 |
|
} |
| 520 |
|
y0 = dp->arr.d[i]; |
| 521 |
|
y1 = dp->arr.d[i+1]; |
| 522 |
|
} else if (dp->type == SPECTY) { |
| 523 |
< |
if (dp->arr.s[dp->dim[0].ne]) { |
| 524 |
< |
double f = dp->arr.s[dp->dim[0].ne] |
| 525 |
< |
? ldexp(1., -(COLXS+8) + |
| 526 |
< |
(int)dp->arr.s[dp->dim[0].ne]) |
| 527 |
< |
: 0.; |
| 528 |
< |
y0 = f*(dp->arr.s[i] + 0.5); |
| 529 |
< |
y1 = f*(dp->arr.s[i+1] + 0.5); |
| 530 |
< |
} else |
| 531 |
< |
y0 = y1 = 0.; |
| 523 |
> |
double f = cxponent[dp->arr.s[dp->dim[0].ne]]; |
| 524 |
> |
y0 = f*(dp->arr.s[i] + 0.5); |
| 525 |
> |
y1 = f*(dp->arr.s[i+1] + 0.5); |
| 526 |
|
} else { |
| 527 |
|
y0 = colrval(dp->arr.c[i],dp->type); |
| 528 |
|
y1 = colrval(dp->arr.c[i+1],dp->type); |