X-Git-Url: https://git.sesse.net/?p=c64tapwav;a=blobdiff_plain;f=interpolate.h;h=f9aeb110060a0501b1e79255fa0edbab2a156ecb;hp=55bc61cc3ca146147e0ba31b68c303e8b387493f;hb=866751f2909657ee7d62f936e3d2cb2ecb7806fb;hpb=08089f496815d725c3bee171bae0e884642ffc05;ds=sidebyside diff --git a/interpolate.h b/interpolate.h index 55bc61c..f9aeb11 100644 --- a/interpolate.h +++ b/interpolate.h @@ -26,13 +26,13 @@ inline double lanczos_weight(double x) return sinc(M_PI * x) * sinc(M_PI * x / LANCZOS_RADIUS); } -extern double lanczos_table[(LANCZOS_RADIUS * 2) * LANCZOS_RESOLUTION]; +extern double lanczos_table[LANCZOS_RADIUS * LANCZOS_RESOLUTION]; void make_lanczos_weight_table(); inline double lanczos_weight_table(double x) { - int table_id = lrintf((x + LANCZOS_RADIUS) * LANCZOS_RESOLUTION); - if (table_id < 0 || table_id >= (LANCZOS_RADIUS * 2) * LANCZOS_RESOLUTION) { + int table_id = lrintf(fabs(x) * LANCZOS_RESOLUTION); + if (table_id >= LANCZOS_RADIUS * LANCZOS_RESOLUTION) { return 0.0; } return lanczos_table[table_id];